Что будет если передать во free указатель со сдвигом?

Что будет если передать во free указатель со сдвигом?

char* arr = malloc(5)
arr+=3;
free(arr)

Сможет ли free очистить его, если да, то как дефолтный аллокатор понимает, с какого байта нужно начать?


Ответы (1 шт):

Автор решения: Harry

Плохо будет. Неопределенное поведение будет.

Скорее всего, просто испортятся данные менеджера памяти, и программа ляжет. Но может и не повезти, и будет продолжать работать, и вылезет эта проблема в другом месте и в другое время...

→ Ссылка