【发布时间】:2014-01-04 00:57:11
【问题描述】:
我有这个功能: void foo(char tab[8][8])
我想让这个函数编辑标签数组的值,所以我尝试了这些语法:
void foo( char *(*tab)[8][8] )
void foo( char *(tab)[8][8] )
void foo( char **tab )
还有很多其他人。我在编译时总是失败,就像这个: 错误:无法将参数 '1' 的 'char ()[8][8]' 转换为 'char (*)[8][8]' (...)
所以,我的问题是:如何创建一个指向二维数组的指针并将其传递给函数?
谢谢。
【问题讨论】:
-
显示函数调用。
-
此刻,它看起来像 foo(point);其中点是: char (*point)[8][8] = &originalVar;
-
originalVar是二维数组吗? -
试试“char *”。一个“二维”字符数组就是一个字符序列。不过,将数组维度传递给您的函数可能是个好主意...
-
originalVar 是一个二维数组,声明如下:char originalVar[8][8] = {'a', 'a', (...)
标签: c arrays pointers multidimensional-array