簡體   English   中英

Android NDK:應用程序完成后,使用malloc分配的內存將如何處理?

[英]Android NDK: what happens to memory allocated with malloc when app finishes?

我有一些用C語言編寫的例程,這些例程是使用NDK從Java類內部調用的

在這些例程中,我只是在開始使用mallocs來設置一些內部數組,這些數組稍后將在C例程的調用中使用。 這些數組在C部分中全局定義,但在Java端無論如何都沒有鏈接或引用

我的問題是,當我的應用程序關閉時,我是否必須麻煩釋放此內存,否則系統會自動釋放它嗎? 我的意思是,系統是否以某種方式知道這些分配是從被銷毀的類中進行的,因此會自動清除它,或者不是這種情況嗎?

為了進一步說明Peter的答案,您的程序需要從操作系統中以很大的塊來請求內存。 然后,程序將這些塊用於為特定數據結構分配少量數據。 操作系統對這些數據結構沒有任何了解:類實例,數組或其他任何東西。

當您的程序終止時,操作系統只是將它提供給程序的所有大塊聲明為“空閑”,以分配給其他任何需要更多內存的程序。 程序知道的任何結構都只是包含無意義數字的字節。

該系統不知道類做了什么,也不需要這樣做。 當您關閉程序時,系統會清理該程序正在使用的所有資源。 這些資源是如何分配的,但是不需要知道什么類等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM