如何计算char **数组

时间:2016-03-22 10:31:33

标签: c++ visual-studio-2010

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

在以下代码print函数中,应查找charpp数组中的元素数,而不读取sizeofArray变量。

#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程序员,在这两种语言中很容易找到字符串数组的大小。

1 个答案:

答案 0 :(得分:1)

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

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

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