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

在C++中,new 和 delete 是用于动态内存分配和释放的关键字。它们允许程序在运行时从堆(heap)上申请和释放内存,相比栈上的静态或自动变量,提供了更大的灵活性。
使用 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使用 delete 释放由 new 分配的内存,防止内存泄漏。
释放单个对象:
delete p; // 释放单个int p = nullptr; // 建议置空,避免悬空指针释放数组:
delete[] arr; // 必须使用 delete[] 释放数组 arr = nullptr;red">注意:如果用 new[] 分配数组,必须用 delete[] 释放;否则行为未定义。
建议:释放后将指针设为 nullptr,可避免误操作。
int main() {
int num = new int(42);
cout << "值: " << num << endl;
int* arr = new int[5]{1, 2, 3, 4, 5};
for(int i = 0; i < 5; ++i) {
cout << arr[i] << " ";
}
cout << endl;
delete num;
num = nullptr;
delete[] arr;
arr = nullptr;
return 0;
}
基本上就这些。合理使用 new 和 delete 能提升程序灵活性,但要时刻注意内存管理。现代C++更推荐使用智能指针(如 unique_ptr、shared_ptr)和容器(如 vector),减少手动管理内存的风险。
以上就是c++++中new和delete怎么用_c++动态内存分配方法的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号