[問題] 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