读书人

关于C/C++下二位数组指针的有关问题

发布时间: 2012-03-29 12:53:12 作者: rapoo

关于C/C++下二位数组指针的问题
在C 下面,这段代码编译没问题:

C/C++ code
  int arr[2][3] = {{1, 2, 3},           {2, 3, 4}};  int **p = arr;


但是在C++下面,编译会报这个错:
invalid conversion from ‘int (*)[3]’ to ‘int’ [-fpermissive]
arr也不能传给一个以int的指针的指针为参数的函数。请问是什么原因啊?

我系统是ubunbu 11.10, gcc版本4.6.1.

[解决办法]
arr退化的指针类型为 int(*)[3]
[解决办法]
C/C++ code
int (*)p[3];p = arr;
[解决办法]
http://www.cnblogs.com/kanong/archive/2010/09/01/1814733.html
http://topic.csdn.net/t/20050517/19/4014417.html
[解决办法]
你可是数组和指针的概念不清楚。数组的维数,和指针的级数没关系,不是一个概念!《C专家编程》
如果是int a[2];则可以 int *pa = a;这是一种隐士转换.
如果是Int b[2][2];则可以 int (*pb)[2] = b;
[解决办法]
探讨

引用:

C/C++ code
int (*)p[3];
p = arr;


比如我有一个函数void func(int **pp);
有没有办法把arr传给func啊?

读书人网 >C++

热点推荐