Die Karten werden innerhalb der ersten richtig gedruckt, aber nachdem alles aufgeräumt ist. Das Board ist mit Zahlen gefüllt, die nur zu Debugging führen.Warum werden meine Boards komplett verschlüsselt?
int **allocMem(int nrows, int ncolumns){
int **board = malloc((nrows + 1) * sizeof(int *));
for(int i = 0; i < nrows; i++)
board[i] = malloc((ncolumns + 1) * sizeof(int));
if (board == NULL) {
printf("\t\nERROR::memory allocation\n\n");
free(board);
return 0 ;
}
return board;
}
Hier ist die Zuordnung zunächst, dann ist dieses Board ist
void makeBoard(int **board, int nrows, int ncolumns){
int i = 0;
printf("board being created \n");
for(int lines = 0; lines < nrows + 1; lines++){
for(int collums = 0; collums < ncolumns + 1; collums++){
(*board + lines)[collums] = i++;
printf("| %d ", (*board + lines)[collums]);
}
printf("| \n");
}
printf("board after being created \n");
for(int lines = 0; lines < nrows + 1; lines++){
for(int collums = 0; collums < ncolumns + 1; collums++){
printf("| %d ", (*board + lines)[collums]);
}
printf("| \n");
}
}
und dies ist der Ausgang
In 'allocMem':' für (int i = 0; i
kaylum
Warum fügen Sie beim Aufruf von 'malloc()' 1 zu 'nrows' und' ncolumns' hinzu? – Barmar
http://ideone.com/KNjilJ – BLUEPIXY