[问题] 2D阵列传值

楼主: future314 (未来π)   2014-11-28 00:13:26
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
DEV C++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
一直出现[Warning]passing argument 1 of 'fnuctionName'from incompatible
pointer type [enabled by default]
[NOTE]expected 'int(*)[30]' but argument is of type 'int **'
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
int *index[30];
for(i=0;i<someNumber;i++)
index[i] = (int*)malloc(arrLen*sizeof(int));
...
...
...
sort2DArray(index, someNumber, arrLen);
....
void sort2DArray(int (*array)[30], int someNumber, int arrLen)
{
....
}
补充说明(Supplement):
我想建一个行列可自订的ARRAY(一个上限为30)然后排序,但怎么样都不行
不知哪里有错,也不知怎么改...
作者: putumaxally (putumaxally)   2014-11-28 00:20:00
int (*array)[30] 改成 int **array 看看
作者: KoenigseggG (地表最速)   2014-11-28 00:22:00
int **? 是说不能执行吗?warning不是?
作者: PoorLoser (废文制造机)   2014-11-28 00:25:00
(*array)[30] ---> *array[30]
楼主: future314 (未来π)   2014-11-28 00:27:00
喔喔喔 感谢楼上的方法但一般的2D阵列传值那样写可以 但为什么现在不行?
作者: PoorLoser (废文制造机)   2014-11-28 00:31:00
你宣告的参数叫做 pointer to array[]你要传进去的叫做 array[] of pointer to intsomeNumber 最好加 guard clause 避免超出阵列边界
楼主: future314 (未来π)   2014-11-28 00:41:00
感谢讲解 m(__ __)m

Links booklink

Contact Us: admin [ a t ] ucptt.com