malloc概念
全称是memory allocation,中文叫动态内存分配,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址
应用场景
当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。
函数原型
extern void *malloc(unsigned int num_bytes)
分配内存大小至少为num_bytes所指定的字节数
若分配成功则返回指向被分配内存的指针,否则返回空指针null
函数头文件
#include <malloc.h> | #include <alloc.h> |
使用方法
指针 = (指针类型*)malloc(sizeof(指针类型*)数据大小)
如:int *p=NULL; int a=1; p = (int*)malloc(sizeof(int)*a);
free函数内存释放
作用:释放malloc函数给指针变量分配的内存空间(这里很多人认为是删除malloc开辟的动态内存空间,其实是剪断指针与被指向的内存数据的关系,与栈区的删除数据释放内存不同)
注:释放内存后,指针变量一定要重新指向NULL(这是因为作用中切断了指向关系),否则没有明确指向的指针变量,变为野指针!!
free函数在释放空间之后,它会把所释放的空间用cd进行填充。
本文仅记录个人学习心得,如有错误,请各位指正,共勉!