A * ptr = (A *)malloc(sizeof(A)); //需要显式指定所需内存大小sizeof(A); 当然了,我这里使用malloc来为我们自定义类型分配内存是不怎么合适的,请看下一条。 5.是否调用构造函数/析构函数 使用new操作符来分配对象内存时会经历三个步骤: 第一步:调用operator new 函数(对于数组是operator new[])分配...
new / new[]:完成两件事,先底层调用 malloc 分配了内存,然后调用构造函数(创建对象)。 delete/delete[]:也完成两件事,先调用析构函数(清理资源),然后底层调用 free 释放空间。 new 在申请内存时会自动计算所需字节数,而 malloc 则需我们自己输入申请内存空间的字节数。
new / new[]:完成两件事,先底层调用 malloc 分配了内存,然后调用构造函数(创建对象)。 delete/delete[]:也完成两件事,先调用析构函数(清理资源),然后底层调用 free 释放空间。 new 在申请内存时会自动计算所需字节数,而 malloc 则需我们自己输入申请内存空间的字节数。