动态内存分配是一种动态的内存分配方式,与之形成鲜明对比的是动态内存分配,程序员精确地告诉计算机为每个程序分配多少内存以及保留内存的时间。这解决了静态内存分配中出现的许多问题,如内存过度使用和程序暂停。虽然它...
动态内存分配是一种动态的内存分配方式,与之形成鲜明对比的是动态内存分配,程序员精确地告诉计算机为每个程序分配多少内存以及保留内存的时间。这解决了静态内存分配中出现的许多问题,如内存过度使用和程序暂停。虽然它解决了许多问题,但如果程序员忘记告诉内存转储,动态内存可能成为一个问题。

默认情况下,手持计算机使用静态内存分配。这意味着当程序被使用时,内存会保留在程序上,即使程序不再使用,或者被占用的内存变得危险或对性能造成障碍。例如,如果用户停止运行一个在3 MB机器上占用2 MB的程序,而第二个程序需要另外2 MB,第二个程序将无法运行。这是因为计算机中没有足够的内存用于另一个程序。使用静态内存分配,用户或程序员不能指定他或她想要存储的内存量,程序员也不能告诉静态内存转储内存以释放资源。这就是高级用户经常使用动态内存分配的原因。程序员能够控制有关内存的一切,包括保留资源的时间例如,程序员可以将动态内存分配设置为只保留1 MB或更少,这样可以节省足够的系统内存,以允许其他程序打开。这是可以做到的,因为静态内存通常保存程序的所有内容,而动态内存允许程序员将其设置为一个较低的值,以保存一些数据,但不是所有的。同时,仍然需要静态内存,并且可以在这个分配模式中进行设置。动态内存分配的一个潜在问题是动态内存可能会被填满如果程序员忘记设置时间值,则返回up。如果没有设置时间值,则与最终释放内存的静态内存不同,动态内存将保留信息。如果程序有垃圾转储应用程序,并且大多数都这样做,它将在一段时间后激活以清除内存。最好还是为内存分配设置一个时间值。