new和malloc在内部实现方式上有哪些区别

分类:知识百科 日期: 点击:0

new和malloc在内部实现上有着明显的区别。new操作符是C++提供的,而malloc函数是C提供的,用于在堆上分配内存。

new操作符

new操作符用于在堆上分配内存,并调用类的构造函数来初始化对象。它提供了一种更加优雅的内存分配方式,可以自动调用构造函数,而不需要手动调用构造函数。

int* p = new int; // 分配一个int类型的内存

new操作符还可以用于分配数组,它可以分配一块连续的内存,并自动调用构造函数来初始化每个元素。

int* p = new int[10]; // 分配一个int类型的数组

malloc函数

malloc函数用于在堆上分配内存,但它不会调用构造函数来初始化内存,而是将内存初始化为未知值。

int* p = (int*)malloc(sizeof(int)); // 分配一个int类型的内存

malloc函数也可以用于分配数组,它可以分配一块连续的内存,但不会调用构造函数来初始化每个元素。

int* p = (int*)malloc(sizeof(int) * 10); // 分配一个int类型的数组

new操作符和malloc函数的区别在于:new操作符可以调用构造函数来初始化对象,而malloc函数不会调用构造函数来初始化内存。

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。