【发布时间】:2021-12-15 11:35:07
【问题描述】:
我在主函数中声明了一个二维数组,我想在另一个函数中获取元素的数量。
假设我的主要是这样的。
#define col 100
#define row 10
int main(){
array[row][col] = {"abc1", "abc2", "abc3"};
int len = get2DLen(array);
}
我以这种形式复制了这个数组 (*array)[column]
int get2DLen(char (*array)[col]){
int len;
//some operations..
return len;
}
问题是……
如何在 func 中获取 col?在这种情况下,10.
如何获取数组中实际元素的数量?在这种情况下,3.
我知道数组在这里意味着 *array[0]。
我尝试迭代所有元素并检查它是否像普通的 char 数组字符串一样是 '\0'。但这绝对是错误的..因为它无论如何都被初始化了..
所以任何帮助将不胜感激
【问题讨论】:
-
C 和 C++ 是非常不同的语言。除非您询问它们的差异,否则请不要同时标记两者。
-
好吧.. 抱歉。我会编辑它
-
C 不会自动为您执行此操作。为此,请手动执行:将数组维度作为参数传递给例程:
int get2DLen(size_t row, size_t col, char (*array)[col])。 (size_t在<stddef.h>中声明。)