在C ++中获取堆数组的大小

get the size of heap array in c++

代码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

如何获取堆数组的大小?谢谢..

简短的回答是,它无法做到,至少不能以可移植的方式做到。您需要以某种方式单独跟踪数组的大小(例如,在整数变量或类似变量中)。

使用容器而不是原始指针:

std::vector<int> a(222);
cout << "the size of a is " << a.size(); << endl;