作者SweepingMonk ((((((((((()))))))))))
看板C_and_CPP
标题[问题] 关於 3D array 的参数传递
时间Mon Apr 20 18:25:17 2009
我刚刚写了个程式(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
1F:推 QQ29:void init(double (*delta_arr)[6]);试试看 04/20 18:52
2F:推 snowlike:因为指标仅对应一个维度,2D亦可 QQ29::init(delta_arr); 04/20 20:05
3F:推 QQ29:这样不会过阿 04/20 20:37
4F:→ snowlike:2D;原po所指的类似 04/20 20:58
5F:推 QQ29:他不是要传3D的吗 04/20 21:12
6F:→ snowlike:回答为什麽,他2D大概void init(*);init([]);这样作的 04/20 21:27
7F:推 QQ29:喔喔@@~我误会了 04/20 21:31
8F:→ snowlike:^^ 04/20 21:34
9F:推 QQ29:原波你2D是怎麽传的? 04/20 23:55
10F:→ SweepingMonk:六楼正解 我这样作 void init(double* arr) 04/23 00:50
11F:→ SweepingMonk:in main: double a[100]; init(a); // 这样ok 04/23 00:51
12F:→ SweepingMonk:2D比照办理 void init(double** arr) 04/23 01:01
13F:→ SweepingMonk:in main: double a[100][100]; init(a); 04/23 01:02