5.1. 动态内存申请
动态内存申请是指在软件生命周期内可以动态的向系统堆中申请和释放内存。
5.1.1. malloc
函数原型:
void *malloc(size_t size);
功能说明:从堆中申请一块虚拟内存
参数说明:
参数
说明
size
申请内存大小,单位:byte
返回值:
非NULL
申请到的内存地址
NULL
申请失败
示例:
1void memory_foo(void) 2{ 3 int *ptr = malloc(200); 4 //写内存 5 memset(ptr, 0x5A, 200); 6}
5.1.2. zalloc
函数原型:
void *zalloc(size_t size);
功能说明:从堆中申请一块虚拟内存,并将内存的数据清0
参数说明:
参数
说明
size
申请内存大小,单位:byte
返回值:
非NULL
申请到的内存地址
NULL
申请失败
示例:
1void memory_foo(void) 2{ 3 int *ptr = zalloc(200); 4 //读内存,全0 5 put_buf(ptr, 200); 6}
5.1.3. free
函数原型:
void free(void *mem);
功能说明:从堆中释放一块虚拟内存,与malloc和zalloc成对使用
参数说明:
参数
说明
mem
使用malloc和zalloc申请的指针
返回值:无
示例:
1void memory_foo(void) 2{ 3 int *ptr = zalloc(200); 4 //读内存,全0 5 put_buf(ptr, 200); 6 free(ptr); 7}