Двумерный динамический массив в C/C++

Пример двумерного динамического массива.
Этот пример скорее больше подходит для классического Си, но принцип создания динамического двумерного массива в этом примере достаточно прозрачен, что позволяет на его основе использовать, скажем, операторы потоков ввода-вывода cin и cout.
Функция realloc(), которая использована в листинге программы, может быть использована для увеличения уже выделенного участка памяти, а для освобождения памяти может быть использована функция free().

Прототипы функций для работы с динамической памятью, расположенные в модуле stdlib:

#include 
void *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

Понравилась статья?

Подпишитесь на новости сайта и получайте новые статьи на свой почтовый ящик (один раз в неделю).


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.