【发布时间】:2017-03-09 12:37:22
【问题描述】:
我编写了一个简单的代码,我想在 C++ 中分配一个二维数组。行(m)和列(n)将由用户在运行时提供。 所以函数 func 应该返回一个指向分配数组的指针。下面是代码但是我得到了编译错误。
int** func(int **arr,int m,int n){
arr=new int *[m];
for(int i=0;i<m;i++){
arr[i]= new int arr[n];
}
return arr;
}
int main()
{
int **arr;
arr=func(arr,4,10)
}
【问题讨论】:
-
运行时大小的数组 ==
std::vector。如果你可以使用它,你应该使用它。 -
你得到哪个编译错误?
-
您在
arr=func(arr,4,10)的末尾错过了;。arr[i]= new int arr[n];应该是arr[i]= new int[n]; -
注意:这是一个指针数组,不是二维数组。即使以相同的方式访问,它们也是不同的动物。 more refs here
标签: c++ pointers multidimensional-array