在C++中,内存划分成5个区,分别是:堆、栈、自由存储区、全局/静态存储区、常量存储区。
1、堆
由new分配的内存块,释由应用程序控制,编译器不用管。一般一个new对应一个delete。如果程序员没有去释放,在程序结束后操作系统自动收回。
2、栈
由编译器在需要的时候分配的,在不需要的时候自动清除的变量的存储区。里边的变量通常是局部变量、函数参数等。
3、自由存储区
由malloc分配的内存块。和堆相似,但其是用free来结束自己的生命。
4、全局/静态存储区
全局变量和静态变量被分配到同一块内存中。
5、常量存储区
存放的是常量,不允许修改。