Вы можете выделить двумерный массив в два этапа следующим образом (я предполагаю, что базовый тип данных здесь int
, но это может быть почти что угодно):
int** my2dArray = malloc(sizeof(int*) * n_rows); // Makes one INTEGER POINTER for each of n_rows
for (int n = 0; n < n_rows; ++n) my2dArray[n] = malloc(sizeof(int) * n_cols); // Makes one INTEGER for each column
Затем вы можете получить доступ к любому элементу массива 2-D, учитывая его row
и column
, например:
int value = my2dArray[row][column];
Здесь я предположил обычный (стандартный) подход использования«приоритет строки» (так что первый индекс - это строка).