Bonjour j'ai un soucis avec mon allocation, cela ne fonctionne pas.
J'ai crée un .C pour allouer un tableaux a deux dimensions mais de caracteres
Voila la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 /* sa déclaration */ #ifndef ALLOCATION #define ALLOCATION char VALEO_Allocation(char **matrice, int NL, int NC); #endifet mon main.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 /* le coude source */ char VALEO_Allocation(char ***matrice, int NL, int NC) { int i; *matrice = ((char**)malloc(NL*sizeof(char*))); for(i=0; i<NL; i++) *matrice[i]= ((char*)malloc(100*NC*sizeof(char))); return(*matrice); }
Je rentre mon tableau en parametre de la fonction avec * car il va etre modifié a l'interieur de "VALEO_Allocation(&tab, nb_ligne, nb_colonne);"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 char **tab[100]==NULL; /* je sais pas si le NULL est bien nécessaire ici*/ /* entre je fai une lecture de mon fichier pour connaitre le nb de ligne et de colonne exact du tableau */ VALEO_Allocation(&tab, nb_ligne, nb_colonne);
Je fais un free du pointeur a la fin de mon main.
Voila les warning que VC++ me sort :
- warning C4028: formal parameter 1 different from declaration
- char' differs in levels of indirection from 'char **'
il me semble qu'en cours j'avais fait la meme chose pour un tableau a deux dimensions mais pour entiers et ca marchait.
Partager