Probleme structure XML

saturne_1606 Messages postés 29 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 23 juin 2006 - 12 févr. 2006 à 13:47
saturne_1606 Messages postés 29 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 23 juin 2006 - 13 févr. 2006 à 22:36
Bonjour à tous!

Voilà, j'essaie de programmer des structures en C pour gérer le XML.
Voici mes structures :

typedef struct
{
char* name;
char* data;
} Element_XML;

typedef struct
{
char* name;
struct Noeud_XML* Parent;
struct Element_XML* Tab_Element[10];//Obliger de limiter car on peut pas avoir 2 tab dynamique se suivant
struct Noeud_XML* Tab_Noeud[];
} Noeud_XML;

Et j'ai un problème au niveau de cette fonction :

void Create_Element_XML(char* nom, char* valeur)//Crée un élément dans le noeud courant
{
int num = Taille_Tab_Element();
if (num == 10) return;
Noeud_Courant->Tab_Element[num] = (Element_XML*) malloc(sizeof(Element_XML));
Noeud_Courant->Tab_Element[num]->name = nom;
Noeud_Courant->Tab_Element[num]->data = valeur;
}

On m'affiche l'erreur suivante pour les 2 dernieres lignes de la fonction :
error: dereferencing pointer to incomplete type

Je ne comprend pas le probleme, et donc comment le résoudre.
En espérant que quelqu'un voudra bien m'aider, je vous remercie d'avance.

2 réponses

julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
13 févr. 2006 à 01:41
Essaie:
Noeud_Courant->Tab_Element[num]->name = strdup(nom);

Par contre attention, tu alloues le pointeur name et tu copies dans nouveau pointeur la donnée, donc ne pas oublier de libérer nom et le champ name de ta structure à la fin de ton prog si tu ne veux pas de fuite de mémoire.

Idem pour le champ data.

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
0
saturne_1606 Messages postés 29 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 23 juin 2006
13 févr. 2006 à 22:36
Merci pour ton aide Savon
Effectivement, j'avais pas pensé à strdup(*char), et encore moins au problème de fuite de mémoire .
Tu sais, j'apprend moi-même sur le tas, donc j'ai pas forcement les bons réflexes.
Par contre, finalement, j'ai abandonné ces structures pour d'autres utilisant abusivement les listes doublement chaînées, car elles deviennent beaucoup plus flexible (au niveau de mon tableau d'éléments par exemple, où il peut être infini maintenant).
J'ai déjà commencer un petit projet C pour PSP; et je me demandais si cela te dérangerais si on peut dialoguer par mail ou MSN lorsque j'ai quelques petits problèmes (et pourquoi pas quand j'en ai pas aussi d'ailleurs :p).
Ce serait bien pour moi d'avoir quelqu'un sur qui apprendre, pour que je puisse progresser...

Encore merci.
[mailto:saturne_1606@hotmail.com mailto:saturne_1606@hotmail.com]

PS: J'attend ta réponse
0
Rejoignez-nous