我必须将二维整数数组(实际上是生活游戏网格)上的指针传递给函数。此函数无法知道宽度和高度。函数原型(prototype)应该是什么?
我试过:
int function(int (*grid)[][], int height, int width);
这会导致错误:“数组类型具有不完整的元素类型”
在不知道数组维度的情况下,我无法想出任何其他方法。
(稍微解释一下:网格的宽高是在main.c文件中#define的,而我需要的函数原型(prototype)在一个头文件中,所以访问不了这个#define。 ..)
谢谢
最佳答案
除非您像我一样使用 MS Visual Studio 2013 Express,并且手中有一个符合 C99
标准的编译器,否则您可以执行以下操作:
int function( int height, int width, int (*grid)[height][width] );
您所需要的只是可变长度数组 (VLA) 功能,这是半兼容的 MSVC 所缺少的。这是它的用法示例:http://ideone.com/J3y2oi
关于C - 将二维数组上的指针传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24708383/