[SOS] Re: Sos Digest, Vol 4, Issue 5
Pierre-Francois
pierrefrancois.leon at wanadoo.fr
Sat Jun 19 14:49:59 CEST 2004
> -Dans strlen:
> ========
> unsigned int strlen(register const char *str)
> {
> unsigned int retval = 0;
> while (*str++)
> retval++;
> return retval;
> --------
> Pourquoi avoir réservé un seul octet au lieu de quatre pour retval ? ça risque
> pas de faire en fait un strlen modulo 255 et des bugs pour les programmes
> utilisateurs ?
Où est-ce que tu vois qu'ils ont utilisé qu'un seul octet ?
Un int est généralement codé sur 32 bits. Donc une valeur max de 2^32
puisque nous sommes en non signé.
> -Je crois que "dst[len-1] = '\0'; " est superflu dans strzcpy (ça risque même
> de rajouter un problème si len == 0).
Je suis tout a fait d'acord avec toi, il y a bien un problème.
> -Toujours dans strzcpy, pourquoi ne pas utiliser 32 bits pour stocker len ?
Heu ? meme remarque pour le int. Par contre ce que je ne comprend pas
c'est qu'on devrait aussi ici utiliser un unsigned int en lieu et place
d'un int.
> -Dans strzcat, est-ce que "char *res = dest;" ne risque pas de donner
> "*res==dest" (pointage prioritaire sur l'assignation) alors que le but serait
> "res==dest" ?
Encore un Heuu ? mais qu'est ce que tu nous dis la ?? :) Relis le livre
de K&R.
Sinon je salue toute l'équipe que je remercie pour avoir lancer ces
articles sur ce sujet très interessant.
Cordialement,
Pierre-Francois.
More information about the Sos
mailing list