Définition d'une structure en c

ahmaouche Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
ahmaouche Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,
Je veux définir une structure (ou des structures) pour manipuler ce qui suit:
Un tableau (dynamique qui contiendra un mot en français son synonyme en anglais, en plus d'un pointeur vers une liste qui contiendra la signification du mot en français qui sera constitué d'un ensemble de mot(chaque mot dans un maillon).
j'ai pensé a faire comme suit:

struct cellule { /* déclaration de la liste*/
char mot [30];
struct cellule *suiv;

};
/**************************************************************/
struct signif {
char mot_fr[20];
char syno_eng [20];
struct cellule *liste_mot;
};
struct signif traducteur[1000]; /*declaration d'un tableau de structure de type signif*/

Est ce que c'est juste ? Y a-t-il d'autre solution?
Merci d'avance.

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Tu parles de tableaux dynamiques mais tu n'en utilises pas.
Il faut mettre des pointeurs à la place des char mot[30] et cie.
Sinon, ça sera statique.
0
ahmaouche Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Pour faire l'allocation dynamique j'ai utilisé la fonction malloc comme suit

/********Allocation dynamique*******************************/
struct cellule {
char* mot;
struct cellule *suiv;
};
/********************************************************/
struct signif {
char* mot_fr;
char* syno_eng;
struct cellule* liste_mot;
};

typedef struct signif signif;
signif* traducteur ;
traducteur = malloc(sizeof(signif));

int main()
{
printf("Hello world!\n");
return 0;
}


Mais après la compilation j'ai les erreur suivantes:

C:\CodeBlocks\structuretp\main.c|28|note: previous declaration of 'traducteur' was here|
C:\CodeBlocks\structuretp\main.c|29|warning: initialization makes integer from pointer without a cast [enabled by default]|
C:\CodeBlocks\structuretp\main.c|29|error: initializer element is not constant|

Cordialement.
0