函数声明(函数原型):
void *malloc(int size);
说明:malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。
需要包含头文件:#include <malloc.h>或#include<stdlib.h>
示例:
int *a = (int *) malloc(sizeof (int)); //需要强制转换类型,还需要手动计算字节数
new 返回指定类型的指针,并且可以自动计算所需要大小。
int *q = (int *) malloc(sizeof (int) * 10);
示例:
int *b = new int; //返回类型为int* 类型(整数型指针),分配大小为 sizeof(int);
int *s = new int [10]; //返回类型为 int* 类型(整数型指针),分配大小为 sizeof(int) * 10;
另外有一点不能直接看出的区别是,malloc 只管分配内存,并不能对所得的内存进行初始化,所以得到的一片新内存中,其值将是随机的。

本文深入探讨了C/C++中的内存分配函数malloc与new的使用区别,详细解析了它们如何分配不同大小的内存,以及malloc不进行内存初始化的特点。
205

被折叠的 条评论
为什么被折叠?



