j'arrive pas a recuperer une matrice enregistré ds un fichier
short **mat[18][25]; (double pointeur car je l'alloue dynamiquement)
ensuite je la remplis de valeur (c comme une carte)
FILE *fp = fopen("nom","wb")
fwrite(&carte, 25*sizeof(short), 18, fp);
putc(0,fp);
fputs("ext", fp);
putc(0,fp);
putc(OTH_TAG, fp);
fclose(fp);
et je la recupere par
FILE *fp = fopen("nom","rb")
fread(&carte, 25*sizeof(short), 18, fp);
fclose(fp);
mais le pb c qu'a chaque fois je recupere une matrice vide alors quelle n'etait pas vide lors de l'enregistrement
alors je ne sais pas non plus si c un pb d'enregistrement ou de lecture, mais le fichier formé n'est pas vide.
qq'un peut il m'aider ???
(je ne veux pas utiliser les fonctions de vat.h pour ça)
C'est ton type de données qui est n'importe quoi.
Ce qu'il faut c'est short *(mat[25]);, et pour allouer la mémoire: mat=malloc(18*25*sizeof(short));.
moi je l'alouais de cette maniere et ds le jeu ça marchait très bien >
mat = calloc (18, sizeof (*mat));
for (m = 0; m < 18; m++) mat[m] = calloc (25, sizeof (short));
Si tu veux faire ça (ce n'est pas la meilleure manière d'allouer une matrice dynamique), alors il faut mettre short **mat;, pas short **mat[18][25];.
Mais tu ne peux pas enregistrer ce type comme tu le fais. Tu n'enregistres que les 18 pointeurs, qui ne seront plus valables la prochaine fois.
Avec short *(map[25]);:
fwrite(map, 25*sizeof(short), 18, fp);
fonctionnera. (map, pas &map, parce que c'est déjà un pointeur.)
[edit]Edité par Kevin Kofler le 04-11-2001 à 20:36:01[/edit]
j'ai du mal expliqué, mais je n'alloue pas ma variable par **mat[18][25], j'ai mis le '[18][25]' pour montrer la taille, mais sinon c definie par **mat tout cours
je vais voir, merci
Kelso Le 05/11/2001 à 20:49 sinon regarde dans la doc de tigcc, ya plusieurs méthodes pour faire ça
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue
je crois que je vais utilisez vat.h finalement pasque rien que de faire 2 fopen("nom","r") mon prog prend 1 ko !
niuob Le 06/11/2001 à 17:53 il vaut mieux je pense
c'est peut-être plus dur à utiliser mais c'est mieux