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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Partager