Я хочу создать динамический массив 2d в отдельной функции. Размер массива будет определен во время выполнения.Функция, которая динамически создает 2d-массив
Передайте массив непосредственно:
void foo(int **arr,int width,int height)
{
arr=new int*[width];
for(int i=0;i<height;i++)
{
arr[i]=new int[height];
}
//fill...
}
...
int** array;
foo(array)
не похоже на работу
Передайте массив через указатель
void foo(int ***arr,int width,int height)
{
*arr=new int*[width];
for(int i=0;i<height;i++)
{
*arr[i]=new int[height];
}
//fill...
}
...
int **array;
foo(&array)
не кажется, работают либо
Как Я делаю это?
Использовать 'std :: vector', больше нечего сказать. –
Пожалуйста, избегайте этого и используйте 'std :: vector>'. Вам нужно передать тройной указатель, чтобы это работало. –
101010
Если вы собираетесь пройти этот маршрут, вы можете сделать это [немного более оптимальным] (http://stackoverflow.com/questions/21943621/how-to-create-a-contiguous-2d-array-in- c/21944048 # 21944048) – PaulMcKenzie