passage par adresse de chaines de caracteres (résolu) [C] - C - Programmation
Marsh Posté le 23-06-2010 à 08:23:34
Tu mets dans balise_a et balise_b l'adresse de variables locales. Apres le retour de trouve_balise, ces variables n'existent plus et n'importe quoi peut arriver.
Marsh Posté le 23-06-2010 à 09:26:19
rhoooo....clair !!
Du coup, je déporte l'allocation dans le main et je supprime mes variables locales a et b et je travaille directement sur les adresses **balise_a et **balise_b. Mais ca part en seg fault !
Je pense me planter dans l'affectation de chaque caractère lu a mes 2 chaines, mais j'arrive pas a mettre le doigt dessus !
Code :
|
Marsh Posté le 23-06-2010 à 09:29:18
*balise_a[i] est interprete comme *(balise_a[i]) et pas (*balise_a)[i] comme ton code le suppose.
Marsh Posté le 23-06-2010 à 09:33:32
ReplyMarsh Posté le 24-06-2010 à 11:06:14
Au passage si tu veux utiliser le C pour lire des fichiers dont tu connais la dtd je te conseille de jeter un oeil à lexx et yacc
Marsh Posté le 24-06-2010 à 11:46:36
J'en prends bonne note merci !! Lexx...que de vieux souvenirs avec ça !!
Marsh Posté le 22-06-2010 à 22:44:19
Salut a tous !!
J'ai un p'tit bout de code qu'est récalcitrant, j'arrive pas a comprendre ce qui se passe mal !!
En gros le programme comprends une fonction qui lit un fichier XML a la recherche de balise <a> et <b> (1 seule occurrence de chaque balise et <a> est avant <b> ) : les arguments de cette fonction sont le fichier a lire, les adresse des chaines contenant respectivement la balise A et celle contenant la balise B...
Voici le fichier que je veux lire :
Le pb est que, en sortie de ma fonction de lecture, j'ai bien mes 2 balises, mais dans le main, ou l'appel à la fonction est fait, il manque la balise <a> !
Il me manque aussi pas mal de cheveux
Voila le source et le résultat de l'exec : si qqn a une idée, je lui en serais très reconnaissant !!
Resultat : a est vide dans le main ! comprends pas
Merci d'avance !!
Message édité par garoju le 23-06-2010 à 09:37:47
---------------
>>feed-back<< >>a vendre<<