为什么存在堆内存?

问题描述

我正在阅读有关堆栈和堆内存的内容,堆栈内存如何存储自动变量,而堆则用于借助指针来动态分配内存,但是。关于为什么甚至堆内存存在,为什么不存在,整个内存仅由代码段和堆栈组成,我有一个小困惑,我知道这是一个奇怪的问题,但是,如果真是那样的话,那还会更少错误,也没有内存泄漏的概念。可以,有人给出这个问题的正当理由。

解决方法

堆使对象的生存期不确定,并且可以分配不确定的大小。那是生命周期或大小,在编译时无法确定。

例如,假设您正在使用文字处理器。在编译程序时,您不知道任何特定文件将要变大还是变小,也不知道用户希望打开该文件多长时间。将与打开的文件相关的对象放在堆上,可以轻松解决这两个问题。

如果没有堆,您将被简化为仅在编译时指定最大大小,并希望该大小已足够,并希望最终将要运行该程序的计算机具有足够的内存来支持最大文件大小。