С массива в C вы на самом деле просто выделяя непрерывный блок пространства для конкретного типа данных, int
в этом случае.
На стек, массив int
создается следующим образом:
int array[2][6];
// 2x6, например, 2 массивы 6 целых чисел в каждой (или 2 строк, каждый с 6 колонн)
Концептуально, было бы, возможно, выглядят как строки и столбцы:
0 1 2 3 4 5
0 |int|int|int|int|int|int|
1 |int|int|int|int|int|int|
На самом деле, в памяти, это просто непрерывный блок пространства, достаточного для 12 int
:
|int|int|int|int|int|int|int|int|int|int|int|int|
Оператор Индекс: []
обеспечивает визуально простой способ доступа к элементам, где, например, ,
массив [1] [3] будет представлять собой 10-й элемент
Для массива, созданного в куче:
int **array=0;
Во-первых, создать указатели, необходимые (в лице [2]) массив
array = malloc(sizeof(int *) * 2); //provide two pointers
давая вам указатели [0] & массив [1]
Теперь вы можете выделить Память для каждого из этих указателей: (представлена [6])
array[0] = malloc(sizeof(int)*6); //space for 6 ints
array[1] = malloc(sizeof(int)*6); //space for 6 ints
два строки указатели указывают на эти места:
|int|int|int|int|int|int|int|int|int|int|int|int|
^array[0] ^array[1]
Давать вам представление 2D массива: array[2][6];
.
Не забудьте освободить все, когда закончите, для каждого таНос, должен быть один свободный:
free(array[0]);
free(array[1]);
free(array);
Не отвергни 'malloc' в С. – crashmstr
' зсапЕ ("D", & a1 [I ]); '->' scanf ("% d", & a1 [i]); ' – BLUEPIXY
спасибо, за ваш ответ ... – HUDUT