[英]c++ How to pass 2d array to the function and how to read it
我有
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
}
}
}
数组自然衰减为指向其第一个元素的指针。 但这并不意味着数组数组会衰减为指向指针的指针,而是指向数组的指针。
举你的例子
char buffer[220][800];
那是char[220][800]
。
当它衰减到指向其第一个元素的指针时,它将与&buffer[0]
,后者的类型为char(*)[800]
。 这必须是你的论点的类型:
void myfunction(char (*array)[800], int columns, int rows);
在函数内部,变量array
可以像数组数组一样使用,如array[i][j]
。
你可以这样做:
void myfunction(char [][800], int columns, int rows);
关于数组的遍历,是的:需要两个循环。 但是不要忘记您正在使用字符。 我不知道您是否希望将它们与零进行比较。 那是空的:
http://en.cppreference.com/w/cpp/language/ascii
顺便说一句,使用向量,您不需要传递剩余的两个参数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.