malloc() 和 calloc() 都是用于在C语言中动态分配内存的函数。
一、malloc()
#include <stdlib.h>
void *malloc(size_t size);
- malloc() 用于申请一块连续可用的内存空间,申请的空间需要用free()释放。
- malloc() 分配的内存不进行初始化,其内容可能是随机的,取决于该内存块之前的使用情况,因此需要对 malloc() 申请的内存空间进行初始化。
- malloc() 返回一个指向分配内存起始位置的指针。如果分配失败,返回NULL。
二、calloc()
#include <stdlib.h>
void* calloc(size_t num, size_t size);
- calloc() 也用于申请一块连续可用的内存空间,申请的空间也需要用free()释放。
- calloc() 分配的内存会被初始化为零,即所有的字节都被设置为0。
- calloc() 返回一个指向分配内存起始位置的指针。如果分配失败,返回NULL。