當我們聲明任何變量時,特別是在C/C++中,它會根據其數據類型(也是機器)在計算機內存中分配。我的問題是,當我們在在線IDE中運行程序時,我的PC /機器的內存是否被使用?在線編譯器對計算機內存的影響
這個問題是更多的使用C動態分配內存此事的意思,因爲,無論出於何種原因,如果我們濫用在像malloc()
,calloc()
功能,特別是free()
參數的指針,有可能是電腦的內存被損壞在一定程度上(內存泄漏)。因此,如果在線編譯不使用計算機內存,那麼我可以在聯機IDE上使用這些函數,但我不知道是什麼情況。它安全嗎?
即使您在本地運行該程序,計算機的內存也不會受到「損害」。內存泄漏只是意味着,如果你調用'malloc' *很多'free',那麼調用最終會失敗。就這樣。一旦程序終止,操作系統會重新整理並釋放程序正在使用的所有內存。 –
這是C的摘錄:Schildt的完整引用。 'free()'函數將ptr指向的內存返回給堆。這使內存可供未來分配。 必須使用先前使用動態分配系統函數之一分配的指針調用free()。在調用中使用無效指針很可能會破壞內存管理機制,並可能導致系統崩潰。如果你傳遞一個空指針,'free()'不執行任何操作。 – Buddhist
是的,但如果你運行任何現代操作系統,如Linux或Windows或OSX,整個堆在虛擬內存中,當程序終止時會回收它。每個程序都有自己的堆,不會對彼此造成任何損害。 –