Что будет если передать во free указатель со сдвигом?
Что будет если передать во free указатель со сдвигом?
char* arr = malloc(5)
arr+=3;
free(arr)
Сможет ли free очистить его, если да, то как дефолтный аллокатор понимает, с какого байта нужно начать?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Плохо будет. Неопределенное поведение будет.
Скорее всего, просто испортятся данные менеджера памяти, и программа ляжет. Но может и не повезти, и будет продолжать работать, и вылезет эта проблема в другом месте и в другое время...