o2o电商网站建设,优秀网站建设方案,村庄建设网站,网站建设零基础自学视频教程作者#xff1a;小树苗渴望变成参天大树 作者宣言#xff1a;认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 #xff0c;就 给 作 者 点 点 关 注 吧#xff01; 文章目录 前言一、C内存管理方式1.1 new/delete操作内置类型 总结 前言
今天再讲一个… 作者小树苗渴望变成参天大树 作者宣言认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 就 给 作 者 点 点 关 注 吧 文章目录 前言一、C内存管理方式1.1 new/delete操作内置类型 总结 前言
今天再讲一个老朋友但是这个老朋友变得比原来更加的优秀了盖头换面了还是同一个人那接下来让我们来看看他的真面目。在C语言说的可以看这篇C语言的动态内存管理 一、C内存管理方式 C语言内存管理方式在C中可以继续使用但有些地方就无能为力而且使用起来比较麻烦因 此C又提出了自己的内存管理方式通过new和delete操作符进行动态内存管理。 1.1 new/delete操作内置类型
// 动态申请一个int类型的空间int* ptr1 new int;int* ptr2 new int[1];// 动态申请一个int类型的空间并初始化为10int* ptr3 new int(10);//这种写法只限一个元素的初始化int* ptr4 new int[1]{ 10 };//这种初始化也行// 动态申请n个int类型的空间int* ptr5 new int[3]{10,10,10};//动态申请3个int类型的空间并初始化为10int* ptr6 new int[6]{ 10,10,10 };//动态申请6个int类型的空间并初始化为//前三个初始化为10后三个默认为0delete ptr1;delete[] ptr2;delete ptr3;delete[] ptr4;delete[] ptr5;delete[] ptr6;对于内置类型new和malloc没有什么区别new可以进行初始化而且使用起来也很方便他不需要计算类型的大小可以自动识别大小对于内置类型的使用就这些我们来看看自定义类型
class A
{
public:A(int a 0): _a(a){cout A(int a 0) this endl;}~A(){cout ~A(): this endl;}
private:int _a;
};对于new和malloc会调用构造函数和析构函数这和malloc和free最大的差别所以初始化的方式和之前的差不多注意一些细节就好了
交叉使用会出现什么情况 对于C语言malloc和free是一对对于Cnew和delete是一对实现的目的都是一样的一个是开空间一个是释放空间我们来看看交叉使用会出现什么情况 对于只开辟一个类型空间大小不管内置类型和自定义类型都没有任何影响但是开多个类型空间就回报错所以大家还是不要交叉使用了。
总结