其他分享
首页 > 其他分享> > c-数组大小(新[])

c-数组大小(新[])

作者:互联网

在调试堆中,我可以获取由new []创建的数组大小:

int size = *((int *)((char *)ptr - 16));

如果数组的大小小于28(但我不知道为什么?0_0),则它可以正常工作.

这个技巧在发布模式下有效吗(不使用调试堆)?

如何获得阵列的大小(100%稳定工作)?

解决方法:

您依赖于实现细节.这就是您的特定实现如何存储放置数组的内存区域的大小的方式.如您所见,内存区域的大小可能大于分配的数组的大小.

如果您需要知道分配有new []的数组的大小,则必须保持该值不变.

标签:c,arrays,new-operator
来源: https://codeday.me/bug/20191011/1890381.html