[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