Frappant ma tête pendant 1 heure, ne peut pas trouver la réponse:matrice pointeur se déréférencé au milieu du code
int *get_possible_moves(int **board, int *w, int *h, int *x, int *y) {
int movespossible=0;
int moveslist[2][8];
//4
if(x + 1 <= w-1 && y + 2 <= h - 1) {
if(board[*(int *)y + 2][*(int *)x + 1] == 0) {
moveslist[movespossible][0] = *(int *)x + 1;
breakpoint-> moveslist[movespossible][1] = *(int *)y + 2;
movespossible++;
}
}
à une ligne marquée breakpoint-> mon ** bord se déréférencé. Des indices pourquoi il en est ainsi? Il n'y a pas de threads concurrents qui utilisent cet endroit en mémoire. De plus, je n'utilise pas ** board du tout sur cette ligne.
//3
if(x + 2 <= w - 1 && y + 1 <= h - 1) {
if(board[*(int *)y + 1][*(int *)x + 2] == 0) {
moveslist[movespossible][0] = *(int *)x + 2;
moveslist[movespossible][1] = *(int *)y + 1;
movespossible++;
}
}
Ce code fonctionne parfaitement.
Merci d'avance!
Pourquoi tous les moulages inutiles (int *)? –