如何获取 char** 数组中的元素数

How can I get count of elements in char** array

正如问题所说,有没有办法读取 char** 数组中有多少个元素?

在下面的代码 print 函数中,应该在不读取 sizeofArray 变量的情况下找到 charpp 数组中元素的计数。

#include <iostream>
using  namespace std;

char** charpp;

void print(char** charpp){
    cout << "Size: " << sizeof(&charpp) << "\r\n";
    for(int i=0;i< sizeofArray;i++){
        if (charpp[i]!=NULL)
            cout << i << " : " << charpp[i] << "\r\n";
    }
}

void main() {
    int sizeofArray = 27;

    charpp = new char*[sizeofArray];
    for(int i = 0; i < sizeofArray; i++) {
      charpp[i] = NULL;
    }

    charpp[1] = "test1";
    charpp[5] = "test5";

    print(charpp);

    charpp? delete(charpp):0;
    cin.get();
}

对不起,如果我要求不可能。我主要是 C#,Java 程序员,在这两种语言中很容易找到字符串数组的大小。

C++ 数组不包含有关其大小的信息 - 必须存储在单独的变量中。

这就是原因main(int argc, char* argv[]) 接受两个参数:大小和数组本身。

C++ 中最简单的解决方案是使用 vector<char*>.