my_memset segmentation fault
Bonsoir,
J'essaye de réecrirre la fonction memset en fonction de ce que me dis le man, cependant comment contrôler le fait que len ne dois pas être négative ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
void *my_memset(void *b, int c, size_t len)
{
unsigned char *s;
size_t i;
i = 0;
s = (unsigned char*) b;
while (i < len)
{
s[i] = (unsigned char)c;
i++;
}
return (b);
} |
Si j'essaye d'appeler la fonction comme ça my_memset(b,2,-1), (len négative) => segmentation fault. Je comprend parfaitement l'erreur, je sors des limites de ma variable s.
La fonction standard memset quand à elle gére bien ce cas puisqu'elle me renvoi : abort ...
Merci pour vos explications.