删除自动 int 变量

delete automatic int variable

本文关键字:变量 int 删除      更新时间:2023-10-16

我正在尝试学习C++的最佳习惯和实践,尤其是围绕内存管理。通过在我的iOS应用程序中使用ARC,Java中的内置GC以及其他一些启用了GC的语言,我在这方面被宠坏了。

我知道您使用deletedelete[]来解构指针。我的问题是,您如何delete整数或其他基本数据类型的变量?

我的第一个想法是,由于delete似乎只适用于指针,我可以这样做吗:

int intToDelete = 6;
delete &intToDelete;

所以基本上,你能创建一个指向内存中整数的指针,并使用该指针删除整数吗?

deletedelete[] 只能与分别使用 newnew[] 显式分配的指针一起使用。特别是,每次使用new时,都应该有相应的delete。同样,每个new[]都需要相应的delete[]。切勿将其中任何一个与未显式分配内存的变量一起使用。编译器负责所有非指针变量的内存分配(和释放)。

> delete 用于释放由new运算符分配的堆内存,delete[]new[] 的对应项。你不能使用 delete 释放不是由 new 分配的指针,即使是来自 malloc 的指针。

本地对象会自动清理。这是该语言最有用的功能之一,因为它也可以通过RAII扩展以涵盖非本地对象。具体来说,使用delete一个巨大的危险信号,表明您没有使用正确的自动清理工具,delete[]更糟。

正确使用构造和销毁语义对于编写良好的C++代码至关重要。如果你手动管理内存,你就错了,除非你有一个笨拙的旧编译器一些非常独特的情况(我从来没有见过任何例子来证明这一点)。