Пример двумерного динамического массива.
Этот пример скорее больше подходит для классического Си, но принцип создания динамического двумерного массива в этом примере достаточно прозрачен, что позволяет на его основе использовать, скажем, операторы потоков ввода-вывода cin и cout.
Функция realloc(), которая использована в листинге программы, может быть использована для увеличения уже выделенного участка памяти, а для освобождения памяти может быть использована функция free().
Прототипы функций для работы с динамической памятью, расположенные в модуле stdlib:
#includevoid *malloc (size_t size); void *calloc (size_t num, size_t size); void *realloc(void *block, size_t size); void *free(void *block);
Собственно, сам пример программы:
#include#include void main() { // *** Variables *** int** ArrayRoot; int i,j; int LinesCount,NumbersCount; // *** Program code *** // Input size of array printf("Enter count of lines: "); scanf("%d",&LinesCount); printf("Enter count of numbers in line: "); scanf("%d",&NumbersCount); // Print entered size printf("Array size: %dx%d\n",LinesCount,NumbersCount); // Create array of int* - allocate memory ArrayRoot= (int **)malloc(sizeof(int*)*LinesCount); // for every pointer to int for (i=0;i Результат работы программы:
Enter count of lines: 3 Enter count of numbers in line: 2 Array size: 3x2 Enter Array [0,0]: 1 Enter Array [0,1]: 2 Enter Array [1,0]: 3 Enter Array [1,1]: 4 Enter Array [2,0]: 5 Enter Array [2,1]: 6 Array [0,0]: 1 Array [0,1]: 2 Array [1,0]: 3 Array [1,1]: 4 Array [2,0]: 5 Array [2,1]: 6[wysija_form id="2"]