Доброго времени суток
помогите разобраться..запутался-выделение памяти под двумерный массив
int **array1 = (int **)malloc(nrows * sizeof(int *));
for(i = 0; i < nrows; i++)
array1[i] = (int *)malloc(ncolumns * sizeof(int));не могу понять почему мы вначале выделяем память под строки , а потом под столбцы
т.е
\\пускай будет char для наглядности
char **array1 = (char **)malloc(5 * sizeof(char*));
for(i = 0; i < 5; i++)
array1[i] = (char *)malloc(3 * sizeof(char));
получается , что создается
_ _ _ _ _
|1|2|3|4|5| -rows
_ _
|_| |_|
|_| |_|
|_| |_|
_ _
|_| |_|
|_| |_|
|_| |_|
_
|_|
|_|
|_|
как то так =)
имею в виду что я думал
\\ вначале создается столбец длинной ncolumns
for (i=0;i<ncolumns;i++)
*(array+i)
\\и каждый указатель в array[i] указывает на выделенную память длинной nrows*sizeof(int**)
подскажите что и как?