Bonjour,
Je souhaite faire un programme qui teste la fonction my_strdup().
Cette fonction est dans une bibliothèque compilée que j'inclus à mon projet de test dans lequel je fais appel à la fonction my_strdup(). Dans mon programme de test, je ne sais pas comment mettre en évidence l'erreur au niveau du malloc, il manque un octet pour le '\0', et pourtant, je n'ai pas de Segmentation Fault lorsque j'appel my_strdup().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 char *my_strdup(const char *s) { size_t len; char *dup; len = strlen(s); dup = (char*)malloc(sizeof(char) * (len)); memcpy(dup, s, len + 1); return (dup); }
Je crois que le malloc() réserve plus de mémoire qu'on ne lui en demande, ce qui m'empêche de mettre l'erreur en évidence, or je veux qu'un appel à cette fonction mette l'erreur en évidence en provoquant un Segmentation Fault, et je ne sais pas comment faire.
Comment puis-je mettre en évidence cette erreur depuis un programme de test, sans avoir accès à la source de la bibliothèque ?
Merci.
Partager