二维数组和二维指针的疑问(小弟我分低,给不了那么多,大家海涵)
二维数组和二维指针的疑问(我分低,给不了那么多,大家海涵)
在C语言中,数组名可以作为该数组的起始地址,当然它的地址也可以用一个指针表示。
但是在如下程序中存在问题,不知是是什么原因。
void sum(int img[176][144])
{
……;
}
int main()
{
int img[176][144];
……;
sum(img[176][144]);
……;
}
或者这样
void sum(int img[176][144])
{
……;
}
int main()
{
int img[176][144];
int *p;
p=img;
……;
sum(img);
……;
}
都会出错说不能把参数int [][]转换成 int *;
请问这是为什么
我想在函数中使用类似的参数,该如何设置。请大家指教。
Answers
Run: C:\MinGW\bin\gcc.exe -ansi -pedantic -W -Wall D:\working\c\a.c
D:\working\c\a.c:1: warning: unused parameter 'img '
D:\working\c\a.c: In function main ': <br />
D:\working\c\a.c:10: warning: passing arg 1 of
sum ' makes pointer from integer
without a cast
D:\working\c\a.c:12: warning: control reaches end of non-void function
Press the Enter key to return to Source Insight...
void sum(int img[176][144])
{
/* ¡¡£»/
}
int main()
{
int img[176][144];
/ ¡¡£»/
sum(img[176][144]);
/¡¡£»*/
}