※ 引述《chhsiao (bye~)》之銘言:
: ※ 引述《HeroPerffig (傲劍)》之銘言:
: : int *data[]
: : 那個 弄了很久不是不太清楚耶 ^_^"
: : 小金助教說可以拿來當 data[m][n] 用
: : 不過自己在試的時候 我在main裡設了一個測資矩陣 a[m][n]的話 (or a[m*n] ?)
: : 他跟*data[] 要怎麼關聯 才有辦法讓我可以傳值到 Row_Echelon(data,m,n)裡 ?
: : 請問有人可以幫我解答一下嗎...
: : 感謝 orz
: 在 function declaration 的時候第二維的 size 要指定,
: 例如:
: void Row_Echelon(int data[][100], int m, int n);
想問一下 在參數傳遞傳 int data[][100] 的時候
是傳一個int **data
還是 int *data[100] ?
: 因為在存取 data[i][j] 的時候,
: compiler 事實上是會取 data + i * 100 + j 位址儲存的值,
: 所以 compilen 需要那個 "100" 來知道 offset 要怎麼計算.
: BTW, 這個宣告和
: void Row_Echelon(int *data[100], int m, int n);
: 是相等的, data 在兩者都是 "指到 int[100] (連續 100 個 int) 這種型態的指標."
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.34