【发布时间】:2021-06-07 12:12:55
【问题描述】:
如何求char**数组的大小,我一直在做
int getSize(char** args)
{
int size = (int)sizeof(args)/ (int)sizeof(arg[0]);
return size;
}
但它只返回值 1。我似乎不知道如何找出我的 char* 数组中有多少元素。
【问题讨论】:
-
无法检测传递给函数的数组的大小,因为在函数中它不再是数组而是指针。您必须在知道原始数组的调用函数中执行此操作。
-
这能回答你的问题吗? Knowing the size of the array using pointer
-
是的,这是有道理的,所以我只需要在创建这个数组时为它设置一个单独的变量,这样我就可以跟踪它的大小;
-
或者你可以做 strlen 所做的事情,在当前元素不等于 NULL 时继续迭代(如 Andrew Henle 的回答),但是这比仅仅跟踪大小具有更糟糕的时间复杂度.