动态内存管理

malloc – 申请动态内存空间
free – 释放动态内存空间
calloc – 申请并初始化一系列内存空间
realloc – 重新分配内存空间

malloc:
函数原型:

#include <stdlib.h>
...
void *malloc(size_t size);

参数size:指定每个内存块空间的大小,以字节为单位。

free:释放参数的空间。
函数原型:

#include <stdlib.h>
...
void free(void *ptr);

参数ptr:指向将要释放的内存空间的地址。

calloc 函数在内存中动态地申请 nmemb 个长度为 size 的连续内存空间(即申请的总空间尺寸为 nmemb * size),这些内存空间全部被初始化为 0。如果 nmemb 或 size 参数的值为 0,那么返回值会因标准库实现的不同而不同,可能是 NULL,也可能返回一个指针值,稍后可以传递给 free 函数。
函数原型:

#include <stdlib.h>
...
void *calloc(size_t nmemb, size_t size);

nmemb:指定需要分配的内存块个数。
size:指定每个内存块空间的大小,以字节为单位。

realloc:

  1. realloc 函数修改 ptr 指向的内存空间大小为 size 字节。

  2. 如果新分配的内存空间比原来的大,则旧内存块的数据不会发生改变;如果新的内存空间大小小于旧的内存空间,可能会导致数据丢失,慎用!

  3. 该函数将移动内存空间的数据并返回新的指针。

  4. 如果 ptr 参数为 NULL,那么调用该函数就相当于调用 malloc(size)。

  5. 如果 size 参数为 0,并且 ptr 参数不为 NULL,那么调用该函数就相当于调用 free(ptr)。

  6. 除非 ptr 参数为 NULL,否则 ptr 的值必须由先前调用 malloc、calloc 或 realloc 函数返回。

函数原型:

#include <stdlib.h>
...
void *realloc(void *ptr, size_t size);

参数ptr:1. 指向由先前调用 malloc、calloc 或 realloc 函数返回的内存空间。
2. 如果该参数为 NULL,相当于调用 malloc(size) 函数。
参数size:指定每个内存块空间的大小,以字节为单位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值