2014-12-22 227 views
0

我開始最近與PASCAL編程,我理解的是,帕斯卡爾退出所有內存分配的程序(使用新的或GetMem)內存被釋放時。那麼儘管如此,用pascal編寫的程序會導致內存泄漏?pascal pl會發生內存泄漏嗎?

我問這是因爲大多數語言,我知道可能導致內存泄漏,我需要知道這是否也是帕斯卡的情況。

+1

我認爲你需要定義你的內存泄漏是什麼意思,或者提供語言爲例爲一體,使你提到的泄漏。至少在我的經驗中,大多數允許內存泄漏的語言就像C和C++一樣,泄漏幾乎總是在流程退出時被終止和回收。這是內存泄漏僅限於進程運行時間。 – UpAndAdam

+0

有時記憶可能會從電腦泄漏到地板下面,所以您應該檢查一下。例如在C中爲 –

+0

,如果您在退出之前分配了一個內存並且沒有釋放它,那麼您將有內存泄漏。 – user3776836

回答

0

在Windows上關閉帕斯卡一個程序(或任何其他語言的這個問題)時,Windows重新分配以前用於其他用途採取了由帕斯卡的內存。

因此,沒有Pascal不會導致內存泄漏,但如果您指的是安全性,內存泄漏不是全部內容,還有很多其他內容(臨時文件等)「泄漏」。

0

內存泄漏是一個術語,用於描述程序運行時發生的情況,而不是結束後的情況。當您動態分配內存時,會「泄漏」內存,但在不再需要時不會釋放內存。如果這種情況發生的次數足夠多(這對於長時間運行的程序(如服務器或大型循環內部)尤爲不利,則內存泄漏將導致程序崩潰或變得無法使用,因爲它已經用完了所有內存可以分配給它。消耗過多內存的程序也會導致計算機系統速度變慢,因爲操作系統被迫使用虛擬內存(在硬盤上)以管理所有正在運行的程序。 「記憶浪費」可能是更好的術語。

無論是程序濫用了它的記憶與否,它結束的時候,所有的這些內存返回到操作系統的控制,並可供其他程序使用,可能啓動。