Bonjour,
Voici mon problème j'ai la fonction suivante qui me permet de créer dynamiquement un tableau 2D :
et le main suivant j'ai mis uniquement la partie qui nous interressai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
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; }
Mais cette solution retourne une erreur car le pointeur n' est pas initialisé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 int main(){ int n; int **plateau; n=2; creat_plateau(n,plateau); ......
j'ai donc penser a la solution suivante :
Je voudrai donc savoir si cette solution (qui marche car mon programme marche) principalement
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 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); .........était juste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part return plateau;
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.
Partager