我声明了以下数组:
char* array [2] = { "One", "Two"};
我将这个数组传递给一个函数。如何在函数中找到这个数组的长度?
最佳答案
将数组传递给函数后,不费吹灰之力就无法找到数组的长度。你需要:
- 使用存储大小的容器,例如
vector
(推荐)。 - 同时传递尺寸。这可能需要对现有代码进行最少的修改,并且是最快的修复方法。
- 使用标记值,就像 C 字符串那样1。这使得查找数组的长度成为一个线性时间操作,如果您忘记了标记值,您的程序可能会崩溃。在大多数情况下,这是最糟糕的做法。
- 在传递数组时使用模板来扣除数组的大小。您可以在这里阅读:How does this Array Size Template Work?
1 如果您想知道,大多数人都对 C 字符串以这种方式工作这一事实感到遗憾。
关于c++ - 如何在 C 中找到 "char *"数组的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8045107/