Salut et merci d'avance de 'éclairer.
voici mon code :
mon problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 struct RecordStruct{ char **pieces; }; typedef struct RecordStruct record ; Record *newRecord(int size){ Record * r = (Record *) malloc(sizeof(Record)); r->pieces=(char **) malloc(sizeof(char)*size*50); return r; }
d'après ce que j'ai lu ds la FAQ
ds le code , ci dessous, pieces ne revient il pas à un tableau de char de size sur 50 ( char[size][50])? parceque quand, plus tard, j'éssaye d'y mettre des chaines de char, ca plante (à la troisième iteration) ?
si j'ajoute cette ligne, ça passe,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 int size = 12; Record *rc = newRecord(size); char* word = (char *)malloc(sizeof(char)); char** array = rc->pieces; int s; for(s=0;size<size;s++){ getword(word,50); strcpy(*array ,word); array++; }
mais c'est pas logique je pense, vu la faq
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 *array = (char * )malloc(sizeof(char)*50);
http://lfe.developpez.com/FAQ/C/?pag...bleau_2D_alloc
Partager