我有
char buffer[220][800]={0};
我想将它传递给函数
void myfunction( 2d array, int column, int row);
在myfunction定义中,我希望能够做到
for(c =0 ; c<column ; ++c)
{
for(r =0 ; r<row ; ++r)
{
if(array[c][r] ==0)
{
do something
}
}
}
答案 0 :(得分:0)
数组自然衰减指向其第一个元素。但这并不意味着数组数组会衰减为指向指针的指针,而是指向数组的指针。
举个例子
char buffer[220][800];
类型为char[220][800]
。
当它衰减到指向其第一个元素的指针时,它将与&buffer[0]
相同,其类型为char(*)[800]
。哪个必须是你的论点的类型:
void myfunction(char (*array)[800], int columns, int rows);
在函数内部,变量array
可以像数组一样使用,如array[i][j]
中所示。
答案 1 :(得分:0)
你可以这样做:
void myfunction(char [][800], int columns, int rows);
关于数组的遍历,是:需要两个循环。但不要忘记你正在使用字符。我不知道你是否希望将它们与零进行比较。那是空的:
http://en.cppreference.com/w/cpp/language/ascii
顺便说一下,使用矢量你不需要传递剩下的两个参数