1.动态存储方式与静态存储方式的定义
1)所谓静态存储方式是指在程序编译期间分配固定的存储空间的方式;
2)所谓动态存储方式是指在程序运行期间根据需要进行动态的分配存储空间的方式。
2.内存中用户存储空间的分配情况(分为三部分)
1)程序区:存放程序语句
2)静态存储区:存放全局变量,在程序开始执行时给全局变量分配存储区,程序执行完毕就释放。
3)动态存储区:
存放以下数据:
①函数形式参数。在调用函数时给形参分配存储空间;
②自动变量(未加static声明的局部变量);
③函数调用时的现场保护和返回地址等。
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。