gpt4 book ai didi

c++ - C++中的delete如何知道要删除多少个内存位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:58 25 4
gpt4 key购买 nike

删除运算符是如何工作的?它比 free() 更好吗?此外,如果您执行 ptr=new char[10],然后使用 delete ptr 删除,指针如何知道要删除多少个位置。

最佳答案

只有delete操作符,free只作为函数存在。在 C++ 下,我们鼓励您使用 new/delete 而不是 malloc()/free()


删除运算符有一个内部的“魔法”。当使用 new[] 创建数组时,数组的大小存储在内存块的元数据中。 delete[] 使用该信息。

所有这些当然都依赖于编译器、操作系统、优化器和实现。

关于c++ - C++中的delete如何知道要删除多少个内存位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2327848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com