new用于动态分配内存,delete用于释放;可分配单变量、数组并初始化,需手动管理避免泄漏。

在C++中,new 和 delete 是用于动态内存分配和释放的关键字。它们允许程序在运行时从堆(heap)上申请和释放内存,相比栈上的静态或自动变量,提供了更大的灵活性。
1. new 的基本用法
使用 new 可以动态分配单个对象或对象数组的内存。分配成功后,返回指向该内存的指针。
分配单个变量:
int* p = new int; // 分配一个int类型的内存 *p = 10; // 给动态内存赋值
初始化同时赋值:
立即学习“C++免费学习笔记(深入)”;
double* d = new double(3.14); // 分配并初始化
分配数组:
int* arr = new int[10]; // 分配10个int的数组for(int i = 0; i
2. delete 的基本用法
使用 delete 释放由 new 分配的内存,防止内存泄漏。
释放单个对象:
delete p; // 释放单个intp = nullptr; // 建议置空,避免悬空指针
释放数组:
delete[] arr; // 必须使用 delete[] 释放数组arr = nullptr;
注意:如果用 new[] 分配数组,必须用 delete[] 释放;否则行为未定义。
3. 常见错误与注意事项
忘记释放内存 → 导致内存泄漏重复释放同一指针 → 程序崩溃释放后继续使用指针 → 悬空指针,危险操作混用 new/delete 与 new[]/delete[] → 未定义行为
建议:释放后将指针设为 nullptr,可避免误操作。
4. 示例完整代码
#include iostream>
using namespace std;
int main() {
int num = new int(42);
cout num
int* arr = new int[5]{1, 2, 3, 4, 5};
for(int i = 0; i cout }
cout
delete num;
num = nullptr;
delete[] arr;
arr = nullptr;
return 0;
}
基本上就这些。合理使用 new 和 delete 能提升程序灵活性,但要时刻注意内存管理。现代C++更推荐使用智能指针(如 unique_ptr、shared_ptr)和容器(如 vector),减少手动管理内存的风险。
以上就是c++++中new和delete怎么用_c++动态内存分配方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1478431.html
微信扫一扫
支付宝扫一扫