Задача:
Необходимо передать в функцию указатель на двумерный массив (типа: 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 );
}