c++ - 如何在 C 中找到 "char *"数组的长度?

标签 c++ c

我声明了以下数组:

char* array [2] = { "One", "Two"};

我将这个数组传递给一个函数。如何在函数中找到这个数组的长度?

最佳答案

将数组传递给函数后,不费吹灰之力就无法找到数组的长度。你需要:

  1. 使用存储大小的容器,例如vector(推荐)。
  2. 同时传递尺寸。这可能需要对现有代码进行最少的修改,并且是最快的修复方法。
  3. 使用标记值,就像 C 字符串那样1。这使得查找数组的长度成为一个线性时间操作,如果您忘记了标记值,您的程序可能会崩溃。在大多数情况下,这是最糟糕的做法。
  4. 在传递数组时使用模板来扣除数组的大小。您可以在这里阅读:How does this Array Size Template Work?

1 如果您想知道,大多数人都对 C 字符串以这种方式工作这一事实感到遗憾。

关于c++ - 如何在 C 中找到 "char *"数组的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8045107/

相关文章:

c - 将 double 型数组添加到未定义长度数组的结构中

c++ - 在 Mac 上找不到 lsocket 库

c - lib 依赖项及其顺序

c - 输入文件中数组字符串的动态内存分配

c++ - STL 集 : insert two million ordered numbers in the most efficient manner

直接使用流缓冲区时出现 C++ 错误? : operator

c++ - 错误 : no matching function for call to ‘std::__cxx11::basic_string<char>::basic_string(int&)’

c++ - 是否可以识别与某些头文件对应的库?

c - 指针解引用线程安全吗?

c++ - 使用数组与 vector 制作矩阵有哪些优缺点?