700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 释放变量所指向的内存_C++动态内存分配(学习笔记:第6章 15)

释放变量所指向的内存_C++动态内存分配(学习笔记:第6章 15)

时间:2023-06-08 12:02:43

相关推荐

释放变量所指向的内存_C++动态内存分配(学习笔记:第6章 15)

动态内存分配[1]

动态申请内存操作符 new

new 类型名T(初始化参数列表)

功能:

在程序执行期间,申请用于存放T类型对象的内存空间,并依初值列表赋以初值。

结果值:

成功:T类型的指针,指向新分配的内存;失败:抛出异常(异常在十二章讲解)。

释放内存操作符delete

delete 指针p

功能:释放指针p所指向的内存。p必须是new操作的返回值。

例6-16 动态创建对象举例

#include <iostream>using namespace std;class Point {public:Point() : x(0), y(0) {cout<<"Default Constructor called."<<endl;}Point(int x, int y) : x(x), y(y) {cout<< "Constructor called."<<endl;}~Point() {cout<<"Destructor called."<<endl; }int getX() const {return x; }int getY() const {return y; }void move(int newX, int newY) {x = newX;y = newY;}private:int x, y;};int main() {cout << "Step one: " << endl;Point *ptr1 = new Point; //调用默认构造函数delete ptr1; //删除对象,自动调用析构函数cout << "Step two: " << endl;ptr1 = new Point(1,2);delete ptr1;return 0;}

主要:new和delete 一定要配合使用

删除(delete)是删除这个指针所指向的对象,释放它的空间。绝对不是删除指针自己。

比如此例中:这个指针变量它还在,在第二步后ptr1它可以接收别的赋值。

所以不是删除指针自己,这个指针是主函数的一个局部变量,当主函数运行结束时,这个指针自己的空间也会被释放。

参考

^/courses/course-v1:TsinghuaX+00740043X__T2+sp/courseware/d4eb7d174ba04a4da6282bcae197892c/3ddce3f3dcb74818b6460b6d94795bad/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。