動態內存分配是一種動態的內存分配方式,與之形成鮮明對比的是動態內存分配,程序員精確地告訴計算機為每個程序分配多少內存以及保留內存的時間。這解決了靜態內存分配中出現的許多問題,如內存過度使用和程序暫停。雖然它...
動態內存分配是一種動態的內存分配方式,與之形成鮮明對比的是動態內存分配,程序員精確地告訴計算機為每個程序分配多少內存以及保留內存的時間。這解決了靜態內存分配中出現的許多問題,如內存過度使用和程序暫停。雖然它解決了許多問題,但如果程序員忘記告訴內存轉儲,動態內存可能成為一個問題。

默認情況下,手持計算機使用靜態內存分配。這意味著當程序被使用時,內存會保留在程序上,即使程序不再使用,或者被占用的內存變得危險或對性能造成障礙。例如,如果用戶停止運行一個在3 MB機器上占用2 MB的程序,而第二個程序需要另外2 MB,第二個程序將無法運行。這是因為計算機中沒有足夠的內存用于另一個程序。使用靜態內存分配,用戶或程序員不能指定他或她想要存儲的內存量,程序員也不能告訴靜態內存轉儲內存以釋放資源。這就是高級用戶經常使用動態內存分配的原因。程序員能夠控制有關內存的一切,包括保留資源的時間例如,程序員可以將動態內存分配設置為只保留1 MB或更少,這樣可以節省足夠的系統內存,以允許其他程序打開。這是可以做到的,因為靜態內存通常保存程序的所有內容,而動態內存允許程序員將其設置為一個較低的值,以保存一些數據,但不是所有的。同時,仍然需要靜態內存,并且可以在這個分配模式中進行設置。動態內存分配的一個潛在問題是動態內存可能會被填滿如果程序員忘記設置時間值,則返回up。如果沒有設置時間值,則與最終釋放內存的靜態內存不同,動態內存將保留信息。如果程序有垃圾轉儲應用程序,并且大多數都這樣做,它將在一段時間后激活以清除內存。最好還是為內存分配設置一個時間值。