mremap是否适用于malloc?

时间:2011-09-11 08:58:43

标签: c++ c linux memory malloc

void * mremap(void *old_address, size_t old_size , size_t new_size, unsigned long flags);

与malloc()兼容吗?

GCC(C ++)并使用Linux。

感谢。

2 个答案:

答案 0 :(得分:6)

不,不是。除了malloc不需要在页面边界(mremap期望的那样)给你一个地址这一事实之外,从malloc处理内存映射会很危险没有malloc知道你做到了。请改用realloc

答案 1 :(得分:2)

不,但如果您之前的malloced内存是页面对齐的话,它很可能会起作用。当然,当他们发现你移动了他们的数据时,与malloc相关的调用将会变得暴躁。结果可能包括堆失效,数据损坏和分段错误。