как передать параметр 3d без глобальной переменной

#c

#c

Вопрос:

Является ли способ передачи 3D-массива в качестве параметра без глобальной переменной для функции C ? Я хочу ввести размер после запуска

 int partition(int *a[size][size],int l,int r )
{
    int pivot=l;
    while(l<r)
    {
        while(a[pivot][0][0]>=a[l][0][0]) { l  ;}
        while(a[pivot][0][0]<a[r][0][0]){r  ;}
        if(l<r){std::swap(a[l][0][0],a[r][0][0];)}
    }
    std::swap(a[pivot][0][0],a[r][0][0]);
    return r;
}
void quick_sort(int *a,int l,int r)
{
    if(l<r)
    {
        int pivot=partition(a,l,r);
        quick_sort(a,l,pivot-1);
        quick_sort(a,pivot 1,r);
    }
}
int main()
{
  int size;
  std::cin>>size;
  int a[size][size][size];
  quick_sort(a,l,size-1);
}
 

Я хочу сортировать 3D-массив только по переменной X («a [x] [0] [0]»), но я нахожу ответ.Я нашел только set const .Я не могу этого сделать.

Комментарии:

1. Используйте std::vector .

2. std::cin>>size; int a[size][size][size]; недопустимый C , он использует непереносимое расширение VLA.

3. Что мне делать @Jarod42

4. Как сказал молбднило, используйте std::vector . (или библиотека с матричными классами).

5. Можете ли вы написать код? @Jarod42