21xrx.com
2024-12-22 22:37:57 Sunday
登录
文章检索 我的文章 写文章
C++如何删除数据?
2023-06-24 03:08:19 深夜i     --     --
c++ 删除 数据

在 C++ 中,删除数据通常指删除动态分配的内存空间。当你通过动态内存分配来创建一个对象,你需要负责将其删除以释放内存。以下是一些删除数据的方法。

1. delete 关键字

使用 delete 关键字可以删除动态分配的单个对象。例如,给定指向动态分配对象的指针 p,你可以使用以下代码来删除它:


delete p;

在删除对象之后,指向该对象的指针不再是有效的,并且应为其赋值为 NULL。

2. delete[] 关键字

如果你通过使用 new[] 操作符动态分配了一个数组,那么你需要使用 delete[] 关键字来删除它。例如,删除指向动态分配数组的指针 p,你可以使用以下代码:


delete[] p;

与删除单个对象相同,指向数组的指针在删除后也应为其赋值为 NULL。

3. unique_ptr

unique_ptr 是一个智能指针类,用于管理动态分配对象的生命周期。它提供了一个 delete 运算符,它会在指针被销毁时自动调用而无需手动删除内存。例如:


std::unique_ptr<int> p(new int);

在这个示例中,指向 int 类型的动态分配指针 p 会在其生命周期结束时自动销毁。

4. shared_ptr

shared_ptr 也是一个智能指针类,但与 unique_ptr 不同的是,它允许多个指针共享同一块内存。可以通过使用 make_shared 或构造函数创建 shared_ptr。例如:


std::shared_ptr<int> p = std::make_shared<int>();

当没有指针指向它时,指向 int 类型的动态分配指针 p 会被自动删除。

以上是删除数据的一些常见方法。需要注意的是,在使用动态内存分配时,一定要记得在数据使用完后及时删除以免产生内存泄漏。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复