时
void * mremap(void *old_address, size_t old_size , size_t new_size, unsigned long flags);
与malloc()兼容吗?
GCC(C ++)并使用Linux。
感谢。
答案 0 :(得分:6)
不,不是。除了malloc
不需要在页面边界(mremap
期望的那样)给你一个地址这一事实之外,从malloc
处理内存映射会很危险没有malloc
知道你做到了。请改用realloc
。
答案 1 :(得分:2)
不,但如果您之前的malloced内存是页面对齐的话,它很可能会起作用。当然,当他们发现你移动了他们的数据时,与malloc相关的调用将会变得暴躁。结果可能包括堆失效,数据损坏和分段错误。