[問題] C函式傳入二維陣列

作者: dg456trgv (風行草)   2016-05-06 09:41:14
先附上程式碼
http://ideone.com/zlYoCi
跑出來結果似乎是正確的
不過有出現警告如下:
第14行:[Warning] passing argument 1 of 'printfLegal'
from incompatible pointer type
第4行:[Note] expected 'int *' but argument
is of type 'int (*)[3]'
看了很久還是不懂為什麼會跳出來這些訊息
可以請大家指點一下嗎? 感謝!
作者: james732 (好人超)   2016-05-06 09:49:00
int [10][3] 跟 int *其實是不同的東西
作者: Schottky (順風相送)   2016-05-06 09:51:00
同意樓上... 請看置底十三誡之第十二誡
作者: james732 (好人超)   2016-05-06 09:53:00
第十二誡的話是寫成int**,又是不同的東西XD
作者: Schottky (順風相送)   2016-05-06 09:56:00
所以只要強制轉型把 warning 除掉,程式就是正確的嗎?我會禁止別人把二維陣列當一維用,但我忘記理由了...
作者: Darkautism (達卡特森)   2016-05-06 20:56:00
如果你夠清楚在做什麼的話可以做
作者: descent (「雄辯是銀,沉默是金」)   2016-05-06 22:53:00
int (*array)[3] 改這樣
作者: loveflames (咕啾咕啾魔法陣)   2016-05-07 00:11:00
也可以傳int array[][3],這兩個等價函數不能傳或返回陣列,但可以傳或返回陣列的指標

Links booklink

Contact Us: admin [ a t ] ucptt.com