Вам нужно позвонить malloc
, а не realloc
на board
. Когда вы создаете экземпляр объекта Board
, для члена board
не выделяется память; поэтому речь идет не о перераспределении памяти, а о выделении памяти board
обычным способом для многомерных массивов .
#include <stdlib.h>
int **array;
array = malloc(nrows * sizeof(int *));
if(array == NULL)
{
fprintf(stderr, "out of memory\n");
exit or return
}
for(i = 0; i < nrows; i++)
{
array[i] = malloc(ncolumns * sizeof(int));
if(array[i] == NULL)
{
fprintf(stderr, "out of memory\n");
exit or return
}
}
Однажды вы выделили память, а затем, если вам нужно расширить board
(например, board
изначально был 2x2, а теперь вы хотите, чтобы он был 6x6), вызовите realloc
в том же порядке, который вы называли malloc
для инициализации board
.