Parseur de commentaire '#' - ASM - Programmation
Marsh Posté le 20-03-2009 à 10:56:42
Tu m'as l'air d'avoir plus un probleme de C que d'assembleur.
Tu fais un alloc++ puis tu modifies tab[alloc] sans l'avoir jamais alloue.
(J'ai pas cherche apres d'autres problemes, je ne suis pas sur de comprendre ta logique).
Marsh Posté le 20-03-2009 à 10:58:44
La taille allouée est trop petite.
Comment est déclaré tab?
char **tab;
Que vaut size_word ?
C'est impossible à dire sans voir plus de code.
Que vaut sizeof(**tab) ?
Ca vaut la taille d'un pointeur, donc 4 octets en mode 32-bit.
Que contient alloc ?
Peut-être qu'il faudrait réinitialiser j quand on trouve #.
Marsh Posté le 20-03-2009 à 10:26:00
Bonjour,
je dois parser un fichier assembleur (.s).
Il y aura surement des commentaires.
Mon fichier est placer dans un tableau qui change de ligne a chaque '\n' croiser.
Mon probleme est le suivant, lorsque je lui dis
while (i < strlen(str))
{
size_word = word(str, i);
tab[alloc] = malloc((size_word + 1) * sizeof(**tab));
j = 0;
while (str[i] != '\0' && str[i] != '\n')
{
if (str[i] == '#')
alloc++;
tab[alloc][j] = str[i];
i++, j++;
}
printf("%s\n", tab[alloc]);
tab[alloc][j] = '\0';
i++, alloc++;
}
Le programme me pete un segfault...j'aurais donc bien parser differement mon fichier, mais je vois pas comment l'epurer de tout commentaire.
Si quelqu'un a une idee ^^
Merci
Message édité par leoz2004 le 20-03-2009 à 10:26:31
---------------
Worldcraze 10loop