【发布时间】:2011-03-12 07:03:05
【问题描述】:
这不是一个问题,“我如何将它传递给函数?”而是“这可以接受吗?”
void func( int **ptr );
int main( int argc, char* argv[] )
{
int arr[][3] = {{1, 2,}, {3, 4}, {5, 6}};
int *pArr = *arr;
(&pArr[0])[1] = 3;
func(&pArr);
cin.get();
return 0;
}
void func( int **ptr )
{
cout << "In func()" << endl;
ptr[0][1] = 5;
}
据我所知,这很有效。这对我来说并不安全,但我更喜欢它而不是将二维数组传递给函数。相反,一个为我工作的指针。
这对于必须阅读我的代码的人来说会不会很困惑?我应该改用其他方法吗?使用指向数组的指针是不是一个坏主意?
另外,问题有点离题。为什么我可以写:
int arr[] = { 1, 2, 3, 4, 5 };
int *pArr = *arr;
为什么我不能写
int arr[][3] = {{1, 2,}, {3, 4}, {5, 6}};
int *pArr = **arr;
甚至使用 **pArr?
【问题讨论】:
标签: c++ pointers multidimensional-array