Menu
CoddyTech

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 分配的内存,这块内存空间就会被释放并变为空闲。在下一课中,你将学习控制内存泄漏的重要性。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

challenge icon

挑战

简单

使用指针 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++ 在线编译器