情况如下:
#include <malloc.h>
int size = 7;
double *a = new double[size];
cout << malloc_usable_size(a) / sizeof(*a) << endl;
//输出结果为 7
int size = 8;
double *a = new double[size];
cout << malloc_usable_size(a) / sizeof(*a) << endl;
//输出结果为 9
//sizeof(a)=sizeof(*a)=sizeof(double)=8
当 size=8 或 1024 其他偶数时,malloc_usable_size 会多一个 size
也就是数组长度为偶数情况下输出结果会比实际的加 1
我想问下这个要怎么处理才始终正确?
或者有没有其他更好的获取指针数组长度的方法?
非常感谢!