动态内存管理:
在程序运行过程中向计算机申请分配一段存储单元或把早先申请的内存给计算机。
在编写程序时,通常不知道需要处理的数据量,或者难以估计所需处理数据量的变动程度。在这种情况下,要达到有效的资源利用,必须在运行时动态地分配所需内存,并在使用完毕后尽早释放不需要的内存,这就是动态内存分配的原理。
动态内存管理同时还具有一个优点:当程序在具有更多内存的系统上需要处理更多的数据时,不需要重写程序。
malloc函数和free函数
1.malloc函数申请分配内存空间
- 定义:void *malloc(usigned size)
- 返回:NULL或一个指针
- 说明:申请成功则返回分配空间的起始地址,否则返回NULL。
2.free函数是malloc函数的逆过程
- 定义:void free(ptr)
- 返回:无
- 说明:把指针ptr所指向的一段内存单元释放
两个函数都包含在头文件stdlib.h和malloc.h中。
动态内存分配的例子:
#include<stdio.h>
#include<malloc.h>
#include<stdlib