函数声明(函数原型):
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 只管分配内存,并不能对所得的内存进行初始化,所以得到的一片新内存中,其值将是随机的。