Bonjour,
actuellement je code un minishell, le probleme c'est que des fois ça segfault des fois non, ça a l'air d'etre au ptit bonheur la chance.
Je lis sur l'entrée standard, une fois la lecture effectuée je "colle" ce que j'ai récupéré a la suite de la chaine que je renverrai quand il n'y aura plus rien a lire sur l'entrée standard, pour ça j'utilise my_strndup, c'est comme strncat sauf que là ya un malloc integré.
Le probleme étant que je rentre des trucs au pif =>ça marche
Je rentre des trucs au pif encore une fois=> ça marche pas
et pas necessairement dans cet ordre
Donc gdb et là c'est le drame:
Program received signal SIGSEGV, Segmentation fault.
0x08048a29 in my_strlen (str=0x64 <Address 0x64 out of bounds>) at my_strlen.c:8
8 while (str[i] != '\0')
alors apparement l'adresse memoire de la chaine dont je cherche a recuperer la longueur cad la chaine finale a été modifiée par je ne sais quel miracle, a la place une valeur arbitraire, donc evidemment => core dump.
J'ai lu que c'était un stack overflow, alors si on pouvait me dire comment l'eviter ça serait vraiment sympa parce que là je pedale dans lvide depuis trop longtemps, voila si vous voulez un bout de sources ya qu'a demander.
merci d'avance ^^ Configuration: Linux
Firefox 2.0.0.12

