关于 c++指针数组长度的问题
資深大佬 : Huelse 55
情况如下:
#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
我想问下这个要怎么处理才始终正确?
或者有没有其他更好的获取指针数组长度的方法?
非常感谢!
大佬有話說 (17)