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