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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.