0x00 malloc函数简介
C语言提供了四个基本的动态内存管理(内存分配与释放)函数,这些函数的原型包含在stdlib.h头文件里。
它们分别是:
1.malloc()/free()函数
2.calloc()函数
3.realloc()函数
malloc的全称是memory allocation,中文叫动态内存分配,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存,一般需和free函数配对使用。
备注:void* 表示未确定类型的指针,void *可以指向任何类型的数据,更明确的说是指申请内存空间时还不知道用户是用这段空间来存储什么类型的数据(比如是char还是int或者其他数据类型)
本篇只对malloc进行讲解
0x01 malloc函数功能
malloc()函数在堆中申请分配一个大小为size个字节的连续内存空间,若成功分配,则返回一个指向所分配空间起始地址的指针,否则返回空指针(NULL)。
free()函数用来释放已分配的内存空间,参数p是待释放的内存空间的首指针