C/C++ 关于malloc/free/new/delete的思考

在malloc和new的时候需要指定分配的空间大小,但是为什么free和delete时只需要传入指针?内存释放如何获得指针空间长度?

结论:简单来说可以理解为分配空间时,有数据头和数据段,我们申请空间分配给我们的指针是指向数据头后的位置数据段前。释放的时候根据数据头中记录的长度来释放内存

在这里插入图片描述

参考:
参考1:free空间大小是多少
参考2:delete长度与大小
参考3:malloc的底层实现ptmalloc

猜你喜欢

转载自blog.csdn.net/only_a_Heroic_car/article/details/128497409