Salut et merci d'avance de 'éclairer.
voici mon code :

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;
}
mon problème :
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) ?

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++;
 
	}
si j'ajoute cette ligne, ça passe,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
*array = (char * )malloc(sizeof(char)*50);
mais c'est pas logique je pense, vu la faq
http://lfe.developpez.com/FAQ/C/?pag...bleau_2D_alloc