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

查找C中字符串数组的长度,c,arrays,C,Arrays,我有一个c字符串的动态数组 char**my_strings=(char**)malloc(50*sizeof(char*) 我想找出它的实际长度(它实际包含多少字符串)。如何执行此操作?使用空指针终止数组,然后执行以下操作: size_t count = 0; while (my_strings[count] != NULL) { ++count; } 使用空指针终止数组,然后执行以下操作: size_t count = 0; while (my_strings[count] !=

我有一个c字符串的动态数组

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


我想找出它的实际长度(它实际包含多少字符串)。如何执行此操作?

使用空指针终止数组,然后执行以下操作:

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

使用空指针终止数组,然后执行以下操作:

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

你不知道:你的工作是跟踪大小,或者使用一个神奇的值(比如说NULL)来标记最终的元素


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

您不知道:跟踪大小是您的工作,或者使用一个神奇的值(比如NULL)来标记最后的元素


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

A
char*
不是“字符串”:它是一个指针。字符串是数组,其中一个元素是
'\0'

指针和数组是不同的


检查的第6节。

A
char*
不是一个“字符串”:它是一个指针。字符串是数组,其中一个元素是
'\0'

指针和数组是不同的


检查。

的第6节。传递大小,或NULL终止数组,或两者都终止。阅读并遵循建议。提供一个。您没有c字符串数组。您有一个指向char指针的指针。虽然类似,但并非完全相同。@StoryTeller我尝试过这样做,但不起作用:
While(!strings[count]==NULL)count++@StoryTeller哦,是的。C在其漫长的历史中,每种编码风格都有其独特之处
argv[argc]
NULL
C11§5.1.2.2.12,C还将最后一个元素设置为
NULL
。这是多余的吗?我以前问过这个吗?由…提供;-);-)传递大小或NULL终止数组,或同时传递大小和/或NULL终止数组。请阅读并遵循建议。提供一个。您没有c字符串数组。您有一个指向char指针的指针。虽然类似,但并非完全相同。@StoryTeller我尝试过这样做,但不起作用:
While(!strings[count]==NULL)count++@StoryTeller哦,是的。C在其漫长的历史中,每种编码风格都有其独特之处
argv[argc]
NULL
C11§5.1.2.2.12,C还将最后一个元素设置为
NULL
。这是多余的吗?我以前问过这个吗?由…提供;-);-)