【发布时间】:2014-11-29 13:50:31
【问题描述】:
我正在使用 sbrk() 实现 malloc
如果想获取堆的初始地址,我只需调用sbrk(0) 并设置一个指向它的指针吗?
【问题讨论】:
-
根据
sbrkmanual page,如果您传递一个零,它将返回 当前 位置。因此,只有当(且仅当)您之前从未为当前进程调用过非零参数时,它才会返回初始堆地址。 -
是的。尽管直接从内核获取内存的现代方法是
mmap/dev/zero。
标签: c memory malloc heap-memory