最近在写c程序的时候,忽然想到一直以来,我所做的是将变量定义并使用,如何销毁还不知道,虽然这步一般由系统解决,但是函数free可以做到销毁指针,就试了试其效果,发现了以下截图的结果,查了下资料发现这与变量的内存分配方式有关,程序的全局变量和静态变量分配在静态存储区上,程序运行时始终占据着这些内存,仅在程序终止前才由系统收回;局部变量和形参分配在动态内存区的栈上,函数执行结束时自动释放;用动态内存分配函数申请来的内存都是从动态内存区的堆上分配过来的,free函数用来释放这方面的内存。
最近在写c程序的时候,忽然想到一直以来,我所做的是将变量定义并使用,如何销毁还不知道,虽然这步一般由系统解决,但是函数free可以做到销毁指针,就试了试其效果,发现了以下截图的结果,查了下资料发现这与变量的内存分配方式有关,程序的全局变量和静态变量分配在静态存储区上,程序运行时始终占据着这些内存,仅在程序终止前才由系统收回;局部变量和形参分配在动态内存区的栈上,函数执行结束时自动释放;用动态内存分配函数申请来的内存都是从动态内存区的堆上分配过来的,free函数用来释放这方面的内存。