指针数组的长度

时间:2009-05-05 21:39:49

标签: c arrays pointers

如果我有像char **行这样的指针数组,我该如何确定它的长度? 感谢

5 个答案:

答案 0 :(得分:7)

你做不到。您必须手动跟踪数组的长度。

答案 1 :(得分:4)

你不能可靠。

有时,标记结尾的是空指针 - 它是有时使用的一种约定。更常见的是,你需要被告知长度。

但是没有确定长度的万无一失的方法。不知何故,你必须知道(或被告知)长度。

答案 2 :(得分:1)

这不是一个指针数组,它是一个指向指针的指针。

答案 3 :(得分:1)

这取决于数据。如果没有关联计数,则它可能是以NULL结尾的列表。

char** lines = mysteryfunction();
for ( ;*lines;lines++ ) { 
    printf( "%s\n", *list ); 
}

答案 4 :(得分:-1)

获取指向数组的指针的长度

char *array[]={"welcome","to","India"};

length=sizeof(array)/sizeof(array[0]);

输出:

  

3

我们可以通过将 (指针大小除以单个大小)来划分长度

因为没有用于获取数组长度的预定义函数。