malloc/free和new/delete的主要区别以及c与c++关于结构体定义使用的区别
来源:互联网 发布:手机短信轰炸软件下载 编辑:程序博客网 时间:2024/05/16 10:58
问题引入:
研究如下两段代码:
struct SBall
{
//to hold theballs coordinates
intposX;
intposY;
//andvelocity速¨´度¨¨
intvelX;
intvelY;
SBall(){}
};
staticSBall* balls = new SBall[NUM_BALLS];
如果要我按照c语言的语法去写,一定是这样:
typedef _ SBall
{
} SBall
static SBall * balls= (SBall *)malloc(sizeof(SBall ) * NUM_BALLS )
1、首先理解c语言中为什么要使用typedef,因为C语言在定义结构体变量的时候,struct是不能省略的,而c++可以省略掉!
2、new和malloc的区别:
malloc/free和new/delete的主要区别如下:
(1)、malloc后面加的是你要分配的内存的大小,要用到sizeof,前面还要就加上强制指针类型转换,而new可以自动计算所需要大小。
(2)、malloc/free实质上是C++/C语言的标准库函数,new/delete是C++的运算符。new/delete厉害之处在于可以自动进行初始化/执行构造函数和析构函数。malloc/free完成不了这个任务。
(3)、C语言只能使用malloc/free。
0 0
- malloc/free和new/delete的主要区别以及c与c++关于结构体定义使用的区别
- [C/C++] malloc/free和new/delete的区别
- c/c++中malloc/free和new/delete的区别
- 关于 C++ 的 new、delete 与 C 的 malloc、free 的区别
- new和malloc以及delete和free的区别
- malloc/free 与 new/delete 的区别
- new/delete 与malloc/free的区别
- malloc/free 与new/delete 的区别
- malloc/free与new/delete的区别
- malloc/free与new/delete的区别
- malloc/free 与 new/delete 的区别
- malloc/free与new/delete的区别
- malloc/free与new/delete的区别
- malloc/free与new/delete的区别
- new/delete与malloc/free的区别
- malloc/free与new/delete的区别
- malloc/free与new/delete的区别
- malloc/free与new/delete的区别
- FragmentTabHost的使用方法
- 如何使用LVM卷管理Linux系统中的磁盘
- 设计模式趣谈
- ecstore关于smarty语法调用
- android 支付接口
- malloc/free和new/delete的主要区别以及c与c++关于结构体定义使用的区别
- 自定义View Measure过程 - 最易懂的自定义View原理系列(2)
- 用cvcopy函数实现 IplImage结构体下用cvSetImageROI截取ROI图像并且用小图贴上去
- LeetCode 70. Climbing Stairs
- 分枝--正则表达式
- 科研索引
- 用友nc65 uap开发查询模版中对于特定条件添加查询条件
- PHP中空字符串介绍0、null、empty和false之间的关系
- OpenStack网络基础知识: OpenvSwitch使用指南