正如问题所说,有没有办法读取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程序员,在这两种语言中很容易找到字符串数组的大小。
答案 0 :(得分:1)
c ++数组不包含有关其大小的信息 - 必须存储在单独的变量中。
这就是main(int argc, char* argv[])
的原因
有两个参数:大小和数组本身。
c ++中最简单的解决方案是使用vector<char*>
。