我有一个动态的c-strings数组
char **my_strings = (char**)malloc(50 * sizeof(char*));
我希望找到它的实际长度(它实际包含多少个字符串)。我怎么能这样做?
答案 0 :(得分:3)
您无法告诉:您的工作是跟踪大小,或者使用魔术值(比如说NULL)来标记最终元素。
请注意,c运行时可能会跟踪分配的内存量,但不会以任何可移植的方式向您显示。
答案 1 :(得分:2)
使用NULL指针终止数组,然后执行:
size_t count = 0;
while (my_strings[count] != NULL) {
++count;
}
答案 2 :(得分:0)