代码1:
int * a;
a=new int[222];
cout<<"the size of a is "<<sizeof(a)<<endl;
输出1:
the size of a is 8
代码2:
int * a;
a=new int[222];
cout<<"the size of a is "<<a.length()<<endl;
输出2:
error: member reference base type 'int *' is not a structure or
union
如何获得堆数组的大小?感谢..
答案 0 :(得分:5)
简短的回答是,它无法完成,至少不能以便携方式完成。您需要以某种方式单独跟踪数组的大小(例如,在整数变量或类似变量中)。
答案 1 :(得分:4)
使用容器而不是原始指针:
std::vector<int> a(222);
cout << "the size of a is " << a.size(); << endl;