[debutant] tableau 2 dimensions dynamique
Salut et merci d'avance de 'éclairer.
voici mon code :
Code:
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:
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:
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