new 和 delete 运算符
Coddy C++ 指针 课程的第 11 课,共 14 课。
关于指针,你必须学习的最后一件重要内容是动态内存分配。
动态内存分配允许在运行时分配内存。这意味着使用指针时,你不需要在程序启动前声明和初始化变量,我们可以为之后要用的内容分配内存空间。
为此,我们使用关键字 new。
int *ptr; // 声明一个指针
// 为 1 个 int 分配内存:
ptr = new int; // ptr 指向这块内存使用 new,本质上就是在内存中为一个之后可以使用的整数预留空间。
但是,为了避免内存泄漏(我们会在下一课中讲解),使用 new 分配的每块内存都应该在程序结束前使用关键字 delete 释放。
int *ptr;
ptr = new int;
*ptr = 10;
cout << "*ptr = " << *ptr << endl;
delete ptr; // 释放已分配的内存如你所见,使用关键字 delete 时,我们之后会释放为指针 ptr 分配的内存,这块内存空间就会被释放并变为空闲。在下一课中,你将学习控制内存泄漏的重要性。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
挑战
简单使用指针 ptrA、ptrB 和 ptrC 为 3 个整数动态分配内存。使用作为函数参数给出的 3 个整数,分别将指针地址处的值设为对应的整数。第一个整数赋给 ptrA,第二个整数赋给 ptrB,最后一个整数赋给 ptrC,最后输出所有指针解引用后的值,并用空格分隔。
不要编写 <i>main()</i> 函数
亲手试试
#include <iostream>
using namespace std;
void dynamicMemory(int a, int b, int c) {
// 在这里编写你的代码
}
// 不要编写 main() 函数C++ 指针中的所有课
自己练习: C++ 在线编译器