【问题标题】:Length of an array of pointers指针数组的长度
【发布时间】:2009-05-05 21:39:49
【问题描述】:

如果我有一个像 char **lines 这样的指针数组,我如何确定它的长度? 谢谢

【问题讨论】:

    标签: c arrays pointers


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你不能可靠。

      有时,有一个空指针标记结束 - 这是有时使用的一种约定。更多时候,您需要被告知长度。

      但是没有确定长度的万无一失的方法。您必须以某种方式知道(或被告知)长度。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            【解决方案5】:

            获取数组指针的长度

            char *array[]={"welcome","to","India"};
            
            length=sizeof(array)/sizeof(array[0]);
            

            输出:

            3

            我们可以通过(指向数组的指针的大小除以单个的大小)得到长度

            因为没有预定义的函数来获取数组的长度..

            【讨论】:

            • 阅读问题。 OP 没有数组。他只有一个指向第一个元素的指针。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-09
            • 2013-03-01
            • 2020-06-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多