看板 C_and_CPP 關於我們 聯絡資訊
我剛剛寫了個程式(C 語言) 裡面有一個 function prototype 長這樣 void init(double** delta_arr); 在 main 中 這樣呼叫它 int main() { double delta_arr[5][50][6] ...... init(delta_arr[0]); } 結果 compile 出現 error message: test.c:91: warning: passing argument 4 of 'init' from incompatible pointer type 請問為什麼呢? (2D 和 1D的 array 我用類似的作法都沒問題耶…) 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.175.14
QQ29:void init(double (*delta_arr)[6]);試試看 04/20 18:52
snowlike:因為指標僅對應一個維度,2D亦可 QQ29::init(delta_arr); 04/20 20:05
QQ29:這樣不會過阿 04/20 20:37
snowlike:2D;原po所指的類似 04/20 20:58
QQ29:他不是要傳3D的嗎 04/20 21:12
snowlike:回答為什麼,他2D大概void init(*);init([]);這樣作的 04/20 21:27
QQ29:喔喔@@~我誤會了 04/20 21:31
snowlike:^^ 04/20 21:34
QQ29:原波你2D是怎麼傳的? 04/20 23:55
SweepingMonk:六樓正解 我這樣作 void init(double* arr) 04/23 00:50
SweepingMonk:in main: double a[100]; init(a); // 這樣ok 04/23 00:51
SweepingMonk:2D比照辦理 void init(double** arr) 04/23 01:01
SweepingMonk:in main: double a[100][100]; init(a); 04/23 01:02