Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1389 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  Parseur de commentaire '#'

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Parseur de commentaire '#'

n°1863907
leoz2004
Posté le 20-03-2009 à 10:26:00  profilanswer
 

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
mood
Publicité
Posté le 20-03-2009 à 10:26:00  profilanswer
 

n°1863934
Un Program​meur
Posté le 20-03-2009 à 10:56:42  profilanswer
 

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).


Message édité par Un Programmeur le 20-03-2009 à 10:57:10
n°1863935
olivthill
Posté le 20-03-2009 à 10:58:44  profilanswer
 

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 #.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  Parseur de commentaire '#'

 

Sujets relatifs
Commentaire en dessous des articlesCommentaire de code ? Auto génération ?
systeme de sondage oui/non + fenetre pour commentaire ?parseur sax (xml))
noter et commentaire dans un site puis taille de fenetre...insertion commentaire cocoon
[JS] Regex : parseur BBCodeDeveloppement C/C++ - CC/PP et parseur XML/RDF/schémas
Ajoutez l'heure à un commentaireParseur ou comparaison de chaine de caractère?
Plus de sujets relatifs à : Parseur de commentaire '#'


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR