Besoin d'aide allocation dynamique
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:
Code:
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
}
} |
Ensuite j'ai voulu remplacer ce code par cette fonction:
Code:
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;
} |
Et je l'ai appelé dans mon code principal par la ligne suivante:
Code:
1 2
|
genererMatrice(longueurMatrice, hauteurMatrice, matrice); |
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...
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.