【发布时间】:2014-08-29 11:55:42
【问题描述】:
有没有一种简单的方法可以将int[n][n] 类型的实例转换为int**?
比如代码
void foo(int** arr) {
// ...
}
int X[10][10];
memset(X,0,10*10*sizeof(int));
foo(X); // error: cannot initialize a parameter of type 'int **' with an lvalue of type 'int [10][10]'
当然,一个简单的解决方法是拥有
int** X=new int*[10];
for (int i=0;i<10;++i) X[i]=new int[10];
但这在某种程度上反驳了在 C++ 中数组只是指针(一维数组当然是指针)的想法。
【问题讨论】:
-
目前函数“foo”无法知道数组是 10x10 - 我想这没问题?
-
int[100]和int[10][10]不是一回事。 -
C++ arrays 不是指针!
-
the idea that in C++ arrays are just pointers嗯?你从哪里得到那个的?错了。