作者dg456trgv (风行草)
看板C_and_CPP
标题[问题] C函式传入二维阵列
时间Fri May 6 09:41:14 2016
先附上程式码
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]'
看了很久还是不懂为什麽会跳出来这些讯息
可以请大家指点一下吗? 感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.248.220.167
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1462498877.A.B1A.html
1F:→ james732: int [10][3] 跟 int *其实是不同的东西 05/06 09:49
2F:→ Schottky: 同意楼上... 请看置底十三诫之第十二诫 05/06 09:51
3F:→ james732: 第十二诫的话是写成int**,又是不同的东西XD 05/06 09:53
4F:→ Schottky: 所以只要强制转型把 warning 除掉,程式就是正确的吗? 05/06 09:56
5F:→ Schottky: 我会禁止别人把二维阵列当一维用,但我忘记理由了... 05/06 10:05
6F:推 Darkautism: 如果你够清楚在做什麽的话可以做 05/06 20:56
7F:→ descent: int (*array)[3] 改这样 05/06 22:53
8F:推 loveflames: 也可以传int array[][3],这两个等价 05/07 00:11
9F:推 loveflames: 函数不能传或返回阵列,但可以传或返回阵列的指标 05/07 00:15