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);
 
#endif
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);
}
et mon main.c
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 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);"
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.