二维数组和二维指针的疑问(我分低,给不了那么多,大家海涵)
在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 **;
请问这是为什么
我想在函数中使用类似的参数,该如何设置。请大家指教。
[解决办法]
void sum(int img[][144])
{
......;
}
int main()
{
int img[176][144];
......;
sum(img);
......;
}
如果能帮到你,没有分也可以^_^
[解决办法]
void sum(int img[176][144])
{
……;
}
int main()
{
int img[176][144];
int (*p)[144];//要这样声明才能进行 p=img
p=img;
……;
sum(img);
……;
}
[解决办法]
http://www.cyberspace.org/~jhl/pass2dary_cn.html
[解决办法]
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 ':
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]);
/*¡­¡­£»*/
}