作者Hermite (Simple Life)
看板C_and_CPP
标题[问题] 三维阵列
时间Thu Feb 19 19:10:27 2009
我有个三维阵列 red[600][320][240]
然後要将这个阵列传给副程式int fun();
我写成
fun(red);
int fun( int *** red)
可是学长说我这样写不对,得要在阵列前加上&
int fun(int *** &red)
但是跑出来的结果都是相同的,是巧合吗?
我想问这种写法两个有什麽差别呢?
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 134.208.3.135
1F:→ ilway25:学长怪怪的 02/19 19:16
2F:推 zlw:我测是要这样 int fun( int red[600][320][240] ) 编译才会过 02/19 19:38
3F:推 zlw:想起来是为什麽了,因为我编译成C++会检查资料型态才过不了.. 02/19 19:59
4F:→ WPC001:我也觉得学长怪怪的... 两个应该是都对, 但应该常写第一种 02/20 00:28
5F:→ WPC001:但两者意义不同, 而我想不到有人会去改"阵列"的位置嘛? 02/20 00:30
6F:→ WPC001:这是阵列, 不是指标... XD XD 02/20 00:30
7F:推 HudsonE:我个人认为这是 C/C++ 隐藏的型别文法不一致性造成... ... 02/20 10:19
8F:推 sunneo:两个都对感觉才是奇怪呢 [] [] [] 是以位移算的 02/20 18:39
9F:→ sunneo:*** 则是对指标deref 後取得实体位址 02/20 18:40
10F:推 zlw:他可能是用new int去建立red的三维阵列,但是内文没写清楚 02/20 22:06