sauvegarder un tableau dans un fichier
bonjour tous le monde,
Je suis nouveau sur le forum et débutant en programmation.
J'essaie d'ecrire une fonction qui recois en parametre un pointeur sur un tableau a sauvegarder et une chaine de caractere correspondant au nom du fichier.
Lors de la compilation j'ai une erreur "la valeur indicée n'est ni un tableau ni un pointeur"a la ligne 53.
Je debute et je ne comprend pas le probleme.
Si vous remarquez d'autres erreur dans le code, je suis ouvert a toutes suggestions.
Merci
Code:
1 2 3 4 5 6
| typedef struct
{
unsigned int nb_colonnes;
unsigned int nb_lignes;
int *plan; //pointeur sur le tableau de nb_lignes * nb_colonnes
} Un_tab2d; |
Code:
1 2 3 4 5 6 7 8 9 10
|
Un_tab2d *creer_tab2d(unsigned int nb_lignes, unsigned int nb_colonnes){
Un_tab2d *tab=malloc(sizeof(Un_tab2d));
tab->nb_colonnes=nb_colonnes;
tab->nb_lignes=nb_lignes;
tab->plan=malloc(nb_colonnes*nb_lignes*(sizeof(int)));
return tab;
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| void ecrire_tab2d(Un_tab2d *tab, char *nom_fichier){
FILE *fic;
int nb_li,nb_co;
int *t;
int i,j;
fic=fopen(nom_fichier,"w");
if (fic==NULL){
fprintf(stderr,"Impossible d'ouvrir le fichier");
exit (1);
}
t=tab->plan;
nb_li=tab->nb_lignes;
nb_co=tab->nb_colonnes;
fprintf(fic,"%d\n",nb_li); //nombre de ligne du tableau
fprintf(fic,"%d\n",nb_co ); //nombre de colonne du tableau
for(i=0;i<nb_li;i++){
for(i=0;j<nb_co;j++){
fprintf(fic,"%d ",t[i][j]); //ligne 53 :erreur a la compilation
}
fprintf(fic,"\n");
}
fclose(fic);
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
#include<stdio.h>
#include"tab2d.h"
int main()
{
Un_tab2d *tab;
int nb_ligne=5;
int nb_colonne=4;
char *fic;
fic="fichier.txt";
tab=creer_tab2d(nb_ligne,nb_colonne);
ecrire_tab2d(tab,fic);
return 0;
} |