c,查找指针数组的长度

时间:2016-11-27 05:30:39

标签: c arrays pointers

我试图找到指针数组的长度。 这是我的代码:

char **histargv[histsize];
histargv[hist] = (char**)malloc(sizeof(char *)*arg);

变量arg不是常数。 histargv数组的每个索引都有不同的arg值。 那么如何找到每个索引的arg值呢?

由于

1 个答案:

答案 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评论中的链接。