Bonjour,
Lors de la création d'un jeu j'ai eu besoin d'une matrice (tableau en 2 dimensions) et le fragment de code ci dessous marchais très bien:
Ensuite j'ai voulu remplacer ce code par cette fonction:
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 int hauteurMatrice = 56, longueurMatrice = 100; int **matrice = NULL; matrice = malloc(hauteurMatrice * sizeof(int*)); for (i = 0; i < hauteurMatrice; i++) { matrice[i] = malloc(longueurMatrice * sizeof(int)); } for (i = 0; i < hauteurMatrice; i++) { for (j = 0; j < longueurMatrice; j++) { matrice[i][j] = CASE_VIDE; //CASE_VIDE est un define qui vaux 0 } }
Et je l'ai appelé dans mon code principal par la ligne suivante:
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 void genererMatrice(int longueur, int hauteur, int **matrice) { int i, j; malloc(hauteur * sizeof(int*)); for (i = 0; i < hauteur; i++) { matrice[i] = malloc(longueur * sizeof(int)); } for (i = 0; i < hauteur; i++) { for (j = 0; j < longueur; j++) { matrice[i][j] = CASE_VIDE; } } return; }
Avant de remplacer le code par la fonction tout marchais très bien mais maintenant ça ne marche plus le programme (en SDL) se ferme instantanément et codeblock ne m'affiche aucun message d'erreur je ne voie pas ou j'ai pu commettre une erreur dans ce code, si vous pouviez m'aider je vous en serais reconnaissant...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 genererMatrice(longueurMatrice, hauteurMatrice, matrice);
Je précise que je suis forcé d'utiliser l'allocation dynamique car la matrice générée dépend en fait de la taille de l'écran.
Partager