通八洲科技

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

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

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

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

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

delete:释放内存并清理对象

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

常见错误与注意事项

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

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

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

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