C++笔记:malloc与new的区别

C/C++:malloc与new的区别

  在创建一个自定义类型数据的对象(如结构体、类等),malloc函数只会为其在堆(Heap)中分配内存,返回一个空(void *)指针;而操作符new会为其在自由储存区(Free Store)中分配内存,并调用构造函数为其初始化,并且返回一个相应类型的指针。

代码

#include<iostream>
#include<stdlib.h>
using namespace std;
struct Test
{
//使用new创建对象时,成员a会被初始化为0
int a = 0;
};
int main()
{
int *a = (int *) malloc(sizeof(int));
int *b = new int;
Test *c = (Test *) malloc(sizeof(Test));
Test *d = new Test;
cout<< *a<< " "<< *b<< endl;
cout<< c->a<< " "<< d->a<< endl;
return 0;
}

运行结果

img

posted @   YusJade  阅读(94)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示