Jak dynamicznie przydzielać ciągły blok pamięci dla tablicy 2D

Jeśli przydzielę tablicę 2D taką jak taint a [N] [N]; przydzieli ciągły blok pamięci.

Ale jeśli spróbuję to zrobić dynamicznie w ten sposób:

int **a = malloc(rows * sizeof(int*));
for(int i = 0; i < rows; i++) 
   a[i] = malloc(cols * sizeof(int));

Utrzymuje to krok jednostki między elementami w wierszach, ale nie musi tak być między wierszami.

Jednym z rozwiązań jest konwersja z 2D na 1D, poza tym, czy jest inny sposób, aby to zrobić?

questionAnswers(7)

yourAnswerToTheQuestion