在C中查找字符串数组的长度

时间:2017-03-21 20:23:22

标签: c arrays

我有一个动态的c-strings数组

char **my_strings = (char**)malloc(50 * sizeof(char*));

我希望找到它的实际长度(它实际包含多少个字符串)。我怎么能这样做?

3 个答案:

答案 0 :(得分:3)

您无法告诉:您的工作是跟踪大小,或者使用魔术值(比如说NULL)来标记最终元素。

请注意,c运行时可能会跟踪分配的内存量,但不会以任何可移植的方式向您显示。

答案 1 :(得分:2)

使用NULL指针终止数组,然后执行:

size_t count = 0;
while (my_strings[count] != NULL) {
    ++count;
}

答案 2 :(得分:0)

char *不是"字符串":它是指针。字符串是其中一个元素为'\0'的数组。

指针和数组不同!

检查c-faq

的第6部分