evg

Задача:

Необходимо передать в функцию указатель на двумерный массив (типа: long ** ptr) и в ней динамически создать двумерный массив.

Решение:

На самом деле все просто :) нам нужен указатель на указатель на указатель. Также нужно не забыть уничтожить свежесозданные массивы.


void makemas(long ***ptr, int x, int y)
{
	long ** mas = new long*[x];
	for(int i = 0; i < x; i++) 
		mas[i] = new long[y];
	*ptr = mas;
}

void delmas(long ** ptr, int x)
{

	for(int i = 0; i < x; i++)
	{
		delete[] ptr[i];
	}
	delete[] ptr;
}

void main(void)
{
	long ** A, **B;
	makemas( &A, 3, 3 );
	makemas( &B, 4 , 5 );
	delmas( A, 3 );
	delmas( B, 4 );
}

Коментарии