如何将二维数组传递给函数?
当我传递它时,它在visual studio调试器中显示为一个单维数组。问题是,当我索引sel_col[I]时,它会得到下一个字符,而不是下一个单词。
void print_row(char sel_col[MAX_IDENT_LEN][MAX_IDENT_LEN]);
这是我的2d数组的定义,我把它命名为
char sel_col[MAX_NUM_COL][MAX_IDENT_LEN];
print_row(sel_col);
解决方案1:删除第一个大小标识符。没有工作。
void print_row(char sel_col[][MAX_IDENT_LEN]);
解决方案2:通过引用传递给函数。没有工作。
print_row(&sel_col);
方案3:使用双指针。我不想走这条路,因为我将重写我的大部分代码。
在C语言中,二维数组看起来像一维数组;a char[3][3]
实际上是一个只有9个元素长的一维数组,编译器执行一些数学运算将两个较小的索引变成一个较大的索引。你的函数原型看起来是正确的。问题是什么?你得到一个编译错误吗?