![ca3e358ce6cf1beefd29a95de7f5cf61.png](https://i-blog.csdnimg.cn/blog_migrate/7ef9669dcf9baea0bb44ca7f02c3dd33.png)
malloc函数
- 原型:extern void* malloc(unsigned int size);
- 功能:动态分配内存;
- 注意:size仅仅为申请内存字节大小,与申请内存块中存储的数据类型无关,故编程时需要通过以下方式给出:"长度 * sizeof(数据类型)";
- 示例:
//动态分配内存,输入5个数据,并把低于60的值打印出来
free函数
- 原型:void free(void * ptr);
- 功能:搭配malloc()函数,释放malloc函数申请的动态内存;
- 注意:对于free(ptr),若ptr为NULL,则可进行多次释放,若ptr是非空指针,则free对ptr只能进行一次操作,否则程序将崩溃;
- 示例:见malloc函数;
- 结果:见malloc函数;
realloc函数
- 原型: void* realloc(void * ptr,unsigned int size);
- 功能:先判断当前指针是否有足够的连续空间,若足够,扩大ptr指向的地址并返回,若不够,怎按size指定的大小分配空间,将原数据copy到新分配的内存中,然后释放原ptr所指向区域;
- 注意:内存使用完毕后,应使用free()函数释放,但原来的指针是自动释放,不需要使用free;
- 示例:
#include
calloc函数
- 原型:void* calloc(unsigned int num,unsigned int size);
- 功能:为已经分配的内存重新分配空间并复制内容;
- 注意:num:对象个数,size:对象占据的内存字节数,相较于malloc函数,calloc函数会自动将内存初始化为0;
- 示例:
#include