1. malloc()
用于分配指定大小的内存块。其函数原型如下:
void *malloc(size_t size);
malloc() 接受一个参数 size,表示需要分配的字节数。如果内存分配成功,它返回一个指向已分配内存区域的指针;否则,若无法分配足够的内存,返回 NULL。
2. calloc()
与 malloc() 类似,但额外提供了分配内存并将其所有字节初始化为零的功能。其函数原型如下:
void *calloc(size_t num, size_t size);
calloc() 接收两个参数:num 表示元素数量,size 表示每个元素的大小。它为 num 个大小为 size 的元素分配内存,并清零。返回值与 malloc() 相同。
3. realloc()
用于调整已分配内存块的大小。其函数原型如下:
void *realloc(void *ptr, size_t size);
realloc() 接收两个参数:ptr 是先前通过 malloc()、calloc() 或 realloc() 分配的内存区域的指针,size 是新的所需大小。它尝试调整指定内存块的大小,如果必要,可能会移动内存块到另一个位置。返回值为调整后内存块的新地址(可能与原地址相同或不同),若分配失败,则返回 NULL,此时原始内存块保持不变。
4. free()
用于释放之前动态分配的内存。其函数原型如下:
free() 接收一个参数 ptr,即之前由内存分配函数返回并不再使用的内存区域的指针。调用 free() 后,该内存区域被释放,可供后续分配使用。 |