2.malloc()与new

1.malloc()

malloc的语法是:指针名=(数据类型*)malloc(长度),(数据类型*)表示指针

void *malloc(int size);

说明:malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。

例如:

int *p = (int *)malloc(sizeof(int));

//mallo函数的返回值是一个指向int型数据的指针(返回值是一个指针),也就是说开辟的内存是用来存放int型数据的

申请出一段连续的内存,方法无非是指定你所需要内存大小。

比如想分配100个int类型的空间:

int* p = (int *) malloc ( sizeof(int) * 100 ); //分配可以放得下100个整数的内存空间

malloc 函数返回的是 void * 类型,如果你写成:p = malloc (sizeof(int)); 则程序无法通过编译,报错:“不能将 void* 赋值给 int * 类型变量”。所以必须通过 (int *) 来将强制转换。

malloc 只管分配内存,并不能对所得的内存进行初始化,所以得到的一片新内存中,其值将是随机的。 若进行初始化需要函数memset();


2.new

new 返回指定类型的指针,并且可以自动计算所需要大小
int *p = new int; //返回类型为int* 类型(整数型指针),分配大小为 sizeof(int);

int* parr;
parr = new int [100]; //返回类型为 int* 类型(整数型指针),分配大小为 sizeof(int) * 100;

全部评论

相关推荐

头像 会员标识
11-27 17:08
已编辑
牛客_产品运营部_私域运营
腾讯 普通offer 24k~26k * 15,年包在36w~39w左右。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务