Работает ли mremap с malloc? - PullRequest
       17

Работает ли mremap с malloc?

3 голосов
/ 11 сентября 2011

Есть

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

совместимо с malloc ()?

GCC (C ++) и использование Linux.

Спасибо.

Ответы [ 2 ]

6 голосов
/ 11 сентября 2011

Нет, это не так.Помимо того факта, что malloc не нужно давать вам адрес на границе страницы (что ожидает mremap), было бы опасно связываться с отображениями памяти из malloc без malloc, не зная вассделал это.Вместо этого используйте realloc.

2 голосов
/ 11 сентября 2011

Нет, но весьма вероятно, что это сработает, если ваша ранее загруженная память была выровнена по страницам. Конечно, вызовы, связанные с malloc, станут раздражительными позже, когда они обнаружат, что вы переместили свои данные. Результаты могут включать аннулирование кучи, повреждение данных и ошибки сегментации.

...