首页IT科技cn在贸易中是什么意思(理解C++ new delete)

cn在贸易中是什么意思(理解C++ new delete)

时间2025-05-05 04:38:44分类IT科技浏览4891
导读:new和malloc区别?delete和free...

new和malloc区别?delete和free

区别?

malloc和free是C语言的库函数

new和delete叫做运算符

malloc是否开辟成功是通过返回值和空指针比对判断.和new开辟失败会抛出异常.bad_alloc

new 不仅可以做内存开辟,还可以做内存初始化操作.

点击查看代码 int *p =(int *)malloc(sizeof(int)); // malloc按照字节开辟空间,返回的是void *              ,需要自己强转到指定类型. //malloc只负责空间开辟,不负责初始化 if(p==nullptr){ return -1; } *p=20; //释放malloc申请的空间地址,只需要将p地址传入即可 free(p); //new 成功与否通过异常捕捉实现 try{ int *p1=new int(20); delete p1; }catch(const bad_alloc &e){ } //C语言开辟数组空间 int *arr1=(int *)malloc(sizeof(int) * 20); if(arr1==nullptr){ return -1; } free(arr1);//C语言无论是释放单个元素还是数组 都是传入地址即可. //C++ 开辟数组空间 int *arr2 =new int[20]; //堆上只负责开辟空间不会做初始化 int *arr3 =new int[20](); //堆上开辟空间,同时负责初始化为0 int *arr4=new int[20](40);//堆上开辟空间,并且初始化值40 //注意new 成功还是失败不要通过和nullptr对比方式,而通过捕获异常方式来判断 delete[]arr2; //注意delete在释放单个元素的时候不需要[] 而在释放数组空间的时候要[]

C++中new 的方式有哪几种?

点击查看代码 int *p=new int(20); int *p2=new (nothrow) int; cont int *p3=new const int(10);//在堆空间开辟一个常量 //定位new int data=100; int *p4=new (&data) int(200);//在指定的位置 开辟空间,放入200值

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
如何删除附件2页文档(第2-3-5章 删除附件的接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss)