Problème d'initialisation de pointeur
	
	
		Bonjour,
Voici mon problème j'ai la fonction suivante qui me permet de créer dynamiquement un tableau 2D :
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | void creat_plateau(int n,int **plateau){
	int i;
	int j;
	plateau = malloc((2*n+1)*sizeof(int*));
	for (i=0;i<2*n+1;i++){
		plateau[i]=malloc((2*n+1)*sizeof(int));
	}
	for (i=0;i<2*n+1;i++){
		for (j=0;j<2*n+1;j++){
			plateau[i][j]=0;
		}
	}
return;
} | 
 et le main suivant j'ai mis uniquement la partie qui  nous interressai :
	Code:
	
| 12
 3
 4
 5
 6
 7
 
 |  
int main(){
	int n;
	int **plateau;
	n=2;
	creat_plateau(n,plateau);
...... | 
 Mais cette solution retourne une erreur car le pointeur n' est pas initialisé
j'ai donc penser a la solution suivante :
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 
 | int ** creer_plateau(int n){
	int i;
	int j;
	int **plateau;
 
	plateau = malloc((2*n+1)*sizeof(int*));
	for (i=0;i<2*n+1;i++){
		plateau[i]=malloc((2*n+1)*sizeof(int));
	}
	for (i=0;i<2*n+1;i++){
		for (j=0;j<2*n+1;j++){
			plateau[i][j]=0;
		}
	}
return plateau;
}
 
int main(){
	int n;
	int **plateau;
	char jouer;
.........
	plateau = creer_plateau(n);
......... | 
 Je voudrai donc savoir si cette solution (qui marche car mon programme marche) principalement était juste.
Peut-on retourner un ** pour une fonction ? (meme si je pense que oui vu que mon compilateur ne me dis rien.
Pour info je suis sous Visual studio 2008.
Merci d'avance.