2014-11-04 120 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

通常,堆内存由操作系统提供的底层的运行时子分配器直接提供。子分配器是特定于进程的,不需要内核调用。如果堆需要更多,它必须求助于系统调用从操作系统获取另一块。

它是特定于实现的子分配器是否曾将块释放回操作系统。