c语言new的作用,C语言中new的用法?

5e8fa6decd2e7d656d9a782322394ae9.png

温温酱

new是C++中用于动态内存分配的运算符,在C语言中一般使用malloc函数。new有三种用法:new operator、operator new、placement new1、new operator:new operator是最常见的用法,如 Emp* e1 = new Emp;(Emp是一个类) 这里new有两种作用:分配空间、初始化对象(调用了构造函数)2、operator new:operator new作用是只分配空间,不调用构造函数,如:Emp* e2 = (Emp*)operator new(sizeof(Emp));3、placement new:placement new作用是在已分配好的空间上初始化对象,不分配空间,调用拷贝构造函数,如:new ((void *)e2) Emp(*tb1);示例代码如下:123456789101112// Emp.h#ifndef _EMP_H_#define _EMP_H_  class Emp{public:Emp();Emp(const Emp& other);~Emp();};#endif // _EMP_H_1234567891011121314151617181920212223242526272829303132333435// Emp.cpp#include “Emp.h”#include using namespace std;Emp::Emp(){cout<void main(){using namespace std;// new operator 分配空间,调用构造函数Emp* e1 = new Emp;// operator new 只分配空间Emp* e2 = (Emp*)operator new(sizeof(Emp));// placement new 不分配空间,调用拷贝构造函数new ((void *)e2) Emp(*e1);// 显示调用析构函数e2->~Emp();// 仅释放空间,不调用析构函数operator delete(e2);// 调用析构函数,释放空间delete e1;}

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值