C++入门——new与delete的使用

xiaoxiao2021-02-28  144

大家好,今天来介绍new和delete的使用方法。

一.基本使用

当我们想要对一段未命名内存分配内容的时候,只能通过指针来访问该内存,我们可以用指针配合new运算符来开辟内存(malloc也可以实现)。我们需要告诉new我们要在内存里存储什么样的数据类型,使用模式如下:

typeName * Pointer_name = new typeName;

在使用new开启了内存空间存储了数据以后,我们在使用完毕后需要使用delete释放掉开辟的内存,方法很简单:

delete Pointer_name;

注意两点:

1.delete只能释放new开启的内存,不要用delete释放声明变量所开辟的内存。

2.delete用来作用于new开辟的地址而不是new对应的指针,例如:

int * Pt = new int;

int * Pg = Pt;

delete Pg;

此处,指针Pg指向new开辟的内存,所以释放掉Pg即可,不需要释放掉new对应的指针Pt。

二.动态数组

如果通过声明来定义数组,程序会在编译时对它分配内存,因此必须明确数组的大小。而如果我们通过使用new来创建动态数组,则是在程序运行的时候才对它分配内存,且可以在程序运行时选择数组的长度。格式如下:

typeName * Pointer_name = new typeName [num_element];

new运算符返回数组的第一个地址,被分配给指针。

释放动态数组内存的方法也很简单:

delete [] Pointer_name;

这个方括号告诉程序,应该释放整个数组的内存,而不是指针指向元素的内存。

希望对大家有帮助,下期见

转载请注明原文地址: https://www.6miu.com/read-23658.html

最新回复(0)