Пытаюсь создать функцию типа
void для создания
двумерного динамического массива и создать в функции
main какой-нибудь указатель для быстрого доступа к этому
двумерному массиву, в итоге получаю кучу ошибок. Понимаю, что легче было бы это сделать через тот же тип
double, но мне уже интересно, возможно ли это через
void?
#include <iostream>
using namespace std;
void Array(unsigned int rows, unsigned int colms)
{
double** array2d = new double* [rows];
for (unsigned int i = 0; i < rows; i++)
array2d[i] = new double[colms];
}
int main()
{
// 1. Создание двумерного массива
unsigned int numRows = 4;
unsigned int numCols = 10;
void (*list)(unsigned int, unsigned int) = Array;
// 2. Инициализация двумерного массива
int data = 0;
for (unsigned int i = 0; i < numRows; i++)
for (unsigned int j = 0; j < numCols; j++)
{
list[i][j] = data;
data++;
}
// 3. Выводим двумерный массив в консоль
for (unsigned int i = 0; i < numRows; i++)
{
for (unsigned int j = 0; j < numCols; j++)
cout << list[i][j] << " ";
cout << endl;
}
// 4. Освобождаем память
for (unsigned int i = 0; i < numRows; i++)
{
double* p_row = list[i];
cout << i << ": " << p_row;
delete[] p_row;
cout << " -(delete[] p_row)-> " << p_row;
p_row = nullptr;
cout << " -(p_row = nullptr)-> " << p_row << endl;
}
delete[] list;
list = nullptr;
return 0;
}