全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C++中new和delete怎么用?C++动态内存分配与释放【内存管理】

new 和 delete 是 C++ 中手动管理堆内存的操作符,负责申请/释放内存并自动调用构造/析构函数;需严格匹配使用,避免未定义行为,推荐优先使用智能指针和标准容器替代。

new 和 delete 是 C++ 中手动管理堆内存的核心操作符,不是函数,也不调用构造/析构函数以外的额外逻辑——它们负责在运行时申请和归还内存,并自动调用对象的构造函数或析构函数。

new:申请内存并初始化对象

new 在堆上分配足够空间,然后调用对应类型的构造函数。基本语法是 new 类型new 类型[数量]

  • 分配单个对象:int* p = new int(42); —— 分配一个 int,初始化为 42
  • 分配对象(调用构造函数):string* s = new string("hello");
  • 分配数组:double* arr = new double[10]; —— 分配 10 个 double,不显式初始化(值不确定)
  • 带初始化的数组(C++11 起):int* a = new int[3]{1, 2, 3};

delete:释放内存并清理对象

delete 会先调用对象的析构函数(如果类型有),再把内存还给系统。必须和 new 匹配使用,否则行为未定义。

  • 释放单个对象:delete p; —— 对应 new T
  • 释放数组:delete[] arr; —— 必须用 delete[],对应 new T[N]
  • 释放后建议置空指针:delete p; p = nullptr;,避免重复 delete 或野指针访问

常见错误与注意事项

这些错误不会被编译器报错,但极易引发崩溃、内存泄漏或未定义行为。

  • delete 释放 new[] 分配的内存,或反过来 —— 析构可能不全、内存无法正确回收
  • 重复 delete 同一地址 —— 程序很可能立刻崩溃
  • delete 空指针(nullptr)是安全的,但 delete 野指针(已释放或未初始化)不行
  • new 失败默认抛出 std::bad_alloc 异常;如需检查失败,可用 new(std::nothrow) int 返回 nullptr 而非抛异常

更现代的替代方案(推荐优先使用)

裸 new/delete 容易出错,C++11 后应优先考虑 RAII 智能指针和容器:

  • std::unique_ptr:独占所有权,离开作用域自动 delete
  • std::shared_ptr:共享所有权,引用计数为 0 时自动释放
  • std::vectorstd::string 等:自动管理内部动态内存,无需手动 new/delete

基本上就这些。new/delete 不复杂但容易忽略细节,实际项目中尽量交给智能指针和标准容器来管。


# ai  # c++  # 作用域  # red  # String  # 构造函数  # 析构函数  # int  # double  # 指针  #   # 空指针  # delete  # 对象  # 或未  # 也不  # 很可能  # 不确定  # 报错  # 而非  # 如需  # 不全  # 再把  # 抛出 


相关文章: 个人网站制作流程图片大全,个人网站如何注销?  如何高效配置香港服务器实现快速建站?  建站之星2.7模板快速切换与批量管理功能操作指南  Bpmn 2.0的XML文件怎么画流程图  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  宝塔建站教程:一键部署配置流程与SEO优化实战指南  深入理解Android中的xmlns:tools属性  制作企业网站建设方案,怎样建设一个公司网站?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  如何通过WDCP绑定主域名及创建子域名站点?  南宁网站建设制作定制,南宁网站建设可以定制吗?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  建站之星24小时客服电话如何获取?  如何在阿里云虚拟服务器快速搭建网站?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  如何快速重置建站主机并恢复默认配置?  如何快速生成高效建站系统源代码?  如何高效搭建专业期货交易平台网站?  建站之星好吗?新手能否轻松上手建站?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  建站主机是否属于云主机类型?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  重庆网站制作公司哪家好,重庆中考招生办官方网站?  教学网站制作软件,学习*后期制作的网站有哪些?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  如何用虚拟主机快速搭建网站?详细步骤解析  如何配置WinSCP新建站点的密钥验证步骤?  如何通过NAT技术实现内网高效建站?  建站之星后台密码遗忘或太弱?如何重置与强化?  音乐网站服务器如何优化API响应速度?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  公司网站的制作公司,企业网站制作基本流程有哪些?  建站DNS解析失败?如何正确配置域名服务器?  建站之星×万网:智能建站系统+自助建站平台一键生成  如何高效完成独享虚拟主机建站?  如何用5美元大硬盘VPS安全高效搭建个人网站?  建站之星如何开启自定义404页面避免用户流失?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  如何获取PHP WAP自助建站系统源码?  音响网站制作视频教程,隆霸音响官方网站?  建站ABC备案流程中有哪些关键注意事项?  如何在阿里云虚拟主机上快速搭建个人网站?  宁波自助建站系统如何快速打造专业企业网站?  SQL查询语句优化的实用方法总结  专业商城网站制作公司有哪些,pi商城官网是哪个?  Java解压缩zip - 解压缩多个文件或文件夹实例  广州建站公司哪家好?十大优质服务商推荐  大连网站制作公司哪家好一点,大连买房网站哪个好?  大型企业网站制作流程,做网站需要注册公司吗?  ,怎么在广州志愿者网站注册? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。