C++内存分为四个区还是五个区?

四个区:堆、栈、数据段、代码段

五个区:堆、栈、数据段、代码段、文字常量区

回答:这样划分应该更合理(划分为5个)
1、栈。在执行函数时,局部变量的存储单元都可以在栈上创建,函数执行结束时存储单元自动释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
2、堆。由malloc分配的内存块。释放由应用程序控制。
3、自由存储区。由new等分配的内存块,由delete来释放。
4、全局/静态存储区。全局变量和静态变量被分配到同一块内存中。
5、常量存储区。存放为常量,不允许修改。

资料链接:https://zhuanlan.zhihu.com/p/280706845#:~:text=c%2B%2B%E4%B8%AD%E5%86%85%E5%AD%98%E5%88%86%E4%B8%BA5%E4%B8%AA%E5%8C%BA%EF%BC%9A.%20%E6%A0%88%E3%80%82.%20%E5%9C%A8%E6%89%A7%E8%A1%8C%E5%87%BD%E6%95%B0%E6%97%B6%EF%BC%8C%E5%B1%80%E9%83%A8%E5%8F%98%E9%87%8F%E7%9A%84%E5%AD%98%E5%82%A8%E5%8D%95%E5%85%83%E9%83%BD%E5%8F%AF%E4%BB%A5%E5%9C%A8%E6%A0%88%E4%B8%8A%E5%88%9B%E5%BB%BA%EF%BC%8C%E5%87%BD%E6%95%B0%E6%89%A7%E8%A1%8C%E7%BB%93%E6%9D%9F%E6%97%B6%E5%AD%98%E5%82%A8%E5%8D%95%E5%85%83%E8%87%AA%E5%8A%A8%E9%87%8A%E6%94%BE%E3%80%82.%20%E6%A0%88%E5%86%85%E5%AD%98%E5%88%86%E9%85%8D%E8%BF%90%E7%AE%97%E5%86%85%E7%BD%AE%E4%BA%8E%E5%A4%84%E7%90%86%E5%99%A8%E7%9A%84%E6%8C%87%E4%BB%A4%E9%9B%86%E4%B8%AD%EF%BC%8C%E6%95%88%E7%8E%87%E5%BE%88%E9%AB%98%EF%BC%8C%E4%BD%86%E6%98%AF%E5%88%86%E9%85%8D%E7%9A%84%E5%86%85%E5%AD%98%E5%AE%B9%E9%87%8F%E6%9C%89%E9%99%90%E3%80%82.,%E5%A0%86%E3%80%82.%20%E7%94%B1malloc%E5%88%86%E9%85%8D%E7%9A%84%E5%86%85%E5%AD%98%E5%9D%97%E3%80%82.%20%E9%87%8A%E6%94%BE%E7%94%B1%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%8E%A7%E5%88%B6%E3%80%82.%20%E8%87%AA%E7%94%B1%E5%AD%98%E5%82%A8%E5%8C%BA%E3%80%82.%20%E7%94%B1new%E7%AD%89%E5%88%86%E9%85%8D%E7%9A%84%E5%86%85%E5%AD%98%E5%9D%97%EF%BC%8C%E7%94%B1free%E6%9D%A5%E9%87%8A%E6%94%BE%E3%80%82.

链接二:https://blog.csdn.net/derkampf/article/details/51000466