我试图找到指针数组的长度。 这是我的代码:
char **histargv[histsize];
histargv[hist] = (char**)malloc(sizeof(char *)*arg);
变量arg不是常数。 histargv数组的每个索引都有不同的arg值。 那么如何找到每个索引的arg值呢?
由于
答案 0 :(得分:0)
如果指针用于字符串,则可以使用strlen
计算字符串的长度(而不是内存块的大小)。即用:
for (size_t i = 0; i < 100; ++i) {
histargv[i] = read_some_string_somehow_and_return_in_new_buffer();
}
你可以打印字符串,包括它们的长度,如下所示:
for (size_t i = 0; i < 100; ++i) {
printf("%3zu %zu %s\n", i, strlen(histargv[i]), histargv[i]);
}
如果这不是字符串,那么您应该遵循Eli Sadoffs评论中的链接。