malloc、calloc和realloc的区别

1.malloc函数

使用方法:参数是所需申请的内存块的字节数,返回指向申请的内存块的首地址的无类型指针,malloc申请的内存块是未初始化的。

函数原型:

void* malloc(size_t num_size);//num_size = 需要申请的字节数

使用案例:

int* p = (int*) malloc(10*sizeof(int));//申请10个int类型大小(40)字节的内存块。

2.calloc函数

使用方法:参数是内存块所存元素的个数和内存块所存元素的字节大小,返回指向申请的内存块的首地址的无类型指针,calloc申请的内存块内每个字节都初始化为0。

函数原型:

void* calloc(size_t elem_num, size_t elem_size);

使用案例:

int* p = (int*)calloc(10, sizeof(int));

3.realloc函数

使用方法:用于扩充内存时,重新分配内存,会将原内存的内容复制到新内存中,参数是指向原内存块首地址的指针和新内存块的字节数,返回新内存块首地址的无类型指针。

函数原型:

void* realloc(void *p, size_t new_size);

使用案例:

int* p = (int*) malloc(100 * sizeof(int));
int* new_p = (int*) realloc(p,  1000);

 

posted @ 2023-02-10 00:58  mshentai  阅读(89)  评论(0编辑  收藏  举报