如何获取 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*>
.
正如问题所说,有没有办法读取 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*>
.