[C] debordement de tableaux

Résolu/Fermé
Tisiph0n3 - 19 févr. 2008 à 00:22
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 - 21 févr. 2008 à 08:37
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 :)
A voir également:

5 réponses

mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
19 févr. 2008 à 08:50
Peux-tu nous donner le programme complet ?
0
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
Bonjour

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

c'est le prototypage de la fonction qui contient la ligne :)
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
19 févr. 2008 à 16:55
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
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 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
20 févr. 2008 à 19:36
Au pire mets le sur cjoint et envoie le lien en message privé :-) Mmmmh -42... epitech je me trompe ? :-)
0
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 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
21 févr. 2008 à 08:37
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