malloc、calloc和realloc的区别

malloc、calloc和realloc三者都是内存分配操作相关的函数,要使用他们,就需要包含stdlib.h的头文件。

下面对他们的接口和含义进行说明。

一、malloc函数

函数:void *malloc( size_t size );
含义:函数在堆上分配size大小(以字节为单位)的空间,基本上同calloc函数但是它不对内存做初始化

 

二、calloc函数

函数:void* calloc( size_t num, size_t size );
含义:函数返回指向num个数size大小(以字节为单位)的连续的内存空间的首地址并且先把内存中的内容初始化为0

 

三、realloc函数

函数:void *realloc( void *ptr, size_t size );
含义:函数重新为ptr指针分配空间,新的空间大小为size(以字节为单位)并且释放原来分配的空间,只是原来空间的内容还是保留着,还可以用原来的指针来访问,他所释放的是操作系统中使用记录表项,即删除内存表的信息。

 

四、其他

malloc、calloc和realloc分配的内存的释放都是用free
函数:void free( void* ptr );
含义:函数释放用calloc,alloc,realloc函数申请的空间


 

你可能感兴趣的:(C语言,C语言,动态内存管理)