[C] debordement de tableaux

Résolu
Tisiph0n3 -  
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, a tous en fait je voudrais juste qu'on m'explique pourquoi valgrind me signale une lecture en dehors du tableau pour des lignes telles que celles ci:
while (command_line[i] != '\0')

sachant que command _line est passée en argument a la fonction qui contient cette ligne et qu'elle n'a pas été malloquée?
Merci :)

5 réponses

mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Peux-tu nous donner le programme complet ?
0
Tisiph0n3
 
dsl non ce n'est pas possible, mais tu as le contexte, valgrind m'indique un debordement de tableau a cet endroit là ainsi qu'a plein d'autres endroits, alors que bon quand on a atteind le caractère de fin de chaine on ne deborde pas du tableau, c'est dans le cadre d'un minishell, command_line étant ce que je recupère sur l'entrée standard...
0
le père
 
Bonjour

Peux-tu au moins montrer la déclaration de command_line ?
0
Tisiph0n3
 
char    **list_args(char *command_line)

c'est le prototypage de la fonction qui contient la ligne :)
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
est tu sur que ta chaine se termine par '\0' ?
Tu ne donne pas assez de contexte pour que nous puissions répondre à ta question.
entre autre, comment est rempli ce command_line ???
0
Tisiph0n3
 
oh oui je pense qu'elle se termine par un \0 sinon en toute logique mon programme se planterait la gueule en segfault or ce n'est pas le cas meme en floodant la ligne de commande du minishell jusqu'a la mort ça ne segfault pas, et de plus les arguments de la ligne de commande ne seraient pas recuperés correctement ce qui n'est pas le cas, en plus ma fonction qui lit l'entrée standard termine la chaine qu'elle retourne par \0, j'aimerai bien pouvoir tout mettre mais c'est un projet qui n'est pas arrivé a échéance, si je mets tout je risque de me faire pomper mes sources et si ils s'en rendent compte j'aurais -42 comme note, donc bon.
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Au pire mets le sur cjoint et envoie le lien en message privé :-) Mmmmh -42... epitech je me trompe ? :-)
0
Tisiph0n3
 
Oui c'est ça, c'est Epitech héhé on dirait bien qu'il est celèbre ce -42.
pour en revennir au sujet le probleme est resolu, en fait je ne mettais pas le \0 au bon endroit, 1 caractère trop tot, merci pour l'aide ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Ok bonne continuation. Passe le bonjour à Marinaris. Vous ne serez pas trop de 2 pour expliquer à vos profs ce qu'est une boucle for et un printf :-)

Bonne continuation
0