【发布时间】:2009-05-05 21:39:49
【问题描述】:
如果我有一个像 char **lines 这样的指针数组,我如何确定它的长度? 谢谢
【问题讨论】:
如果我有一个像 char **lines 这样的指针数组,我如何确定它的长度? 谢谢
【问题讨论】:
你不能。您必须手动跟踪数组的长度。
【讨论】:
你不能可靠。
有时,有一个空指针标记结束 - 这是有时使用的一种约定。更多时候,您需要被告知长度。
但是没有确定长度的万无一失的方法。您必须以某种方式知道(或被告知)长度。
【讨论】:
这不是一个指针数组,它是一个指向指针的指针。
【讨论】:
这取决于数据。如果没有关联的计数,它可能是一个以 NULL 结尾的列表。
char** lines = mysteryfunction();
for ( ;*lines;lines++ ) {
printf( "%s\n", *list );
}
【讨论】:
char *array[]={"welcome","to","India"};
length=sizeof(array)/sizeof(array[0]);
输出:
3
我们可以通过(指向数组的指针的大小除以单个的大小)得到长度
因为没有预定义的函数来获取数组的长度..
【讨论】: