作者Feis (好好作夢 :D)
看板b93902HW
標題Re: [作業] int *data[] ...
時間Sat Nov 19 01:00:47 2005
※ 引述《sunkeen (自閉星雨期待有你)》之銘言:
: 那網頁上的 int *data[],
: 應該是不完整的prototype吧?
: 至少我用它不能編譯,
: 要改成 int (*data)[某個數字] 才能。
======= 不太會寫 C/C++ 的小金分格線 ==========
int* data[]
沒會錯意的話是傳入一個一維陣列(data[])
每一個元素是一個整數指標.
我們期望記憶體配置是:
data[0] ----------> [0, 1, 2, 3, 4, 5, 6, ..., n - 1]
data[1] ----------> [0, 1, 2, 3, 4, 5, 6, ..., n - 1]
data[2] ----------> [0, 1, 2, 3, 4, 5, 6, ..., n - 1]
...
data[m-1] ---------> [0, 1, 2, 3, 4, 5, 6, ..., n - 1]
所以基本上你要傳進去的應該也是一個 int* data[] 樣子的東西.
一個亂寫的範例.
int data[m][n];
int* list[m];
for (i = 0; i < m; ++i)
list[i] = data[i];
Row_Echelon(list, m, n, p);
--
*a 跟 a[] 之間曖昧不明的關係.. :X
文明帝國正要統一歐亞非卻當機沒存檔的小金留
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.253.182
推 CorruptAngel: 最後一行好難過的感覺@_@ 11/19 01:13
推 CorruptAngel: 最後一行好難過的感覺@_@ 這樣就完全理解了@@ 11/19 01:16
→ CorruptAngel: 最後一行好難過的感覺@_@ 本來在擔心改不到陣列 11/19 01:17
※ 編輯: Feis 來自: 140.112.253.182 (11/19 01:30)
推 CorruptAngel: 最後一行好難過的感覺@_@ 其實傳遞進去的是int** 11/19 01:32
推 sunkeen: 最後一行好難過的感覺@_@ 這樣就完全理解了@@ 11/19 09:49
※ 編輯: Feis 來自: 140.112.253.182 (11/20 14:02)
推 CuteLoga:一整個幫我解答了! 助教萬歲! 11/20 20:48
推 ec75413:這問題以前好像有想到過...至少現在有解答了 :) 11/21 00:51