[问题] 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