2014-11-04 103 views
-1

如何使用malloc()分配內存?誰分配內存操作系統或編譯器?一旦使用free()釋放內存,它可以被其他進程使用嗎?使用malloc動態分配內存()

+1

一次問一個問題,並使用搜索功能,因爲這些都已被問及在此之前回答 – 2014-11-05 02:13:55

+0

我沒有看到任何問題,除了它之前可能已被問過。 – user3344003 2014-11-05 14:40:34

回答

2

在OS中有4個存儲區堆,堆棧,文本和數據。當你使用malloc時,操作系統從堆區域提供內存。編譯器不負責分配這個內存。當你使用空閒時,內存塊返回堆。

0

通常,堆內存由操作系統提供的底層的運行時子分配器直接提供。子分配器是特定於進程的,不需要內核調用。如果堆需要更多,它必須求助於系統調用從操作系統獲取另一塊。

它是特定於實現的子分配器是否曾將塊釋放回操作系統。