История изменений
Исправление kvap, (текущая версия) :
Это не Undefined Behavior. UB значит, что реализация может быть какой угодно. Но если не менять версию компилятора и библиотек, то они поведут себя одинаково.
Здесь дело может быть в том, что память выделяется системой сразу большим куском. И то, что ты в программе сделал free(), фактически не вернуло системе память, то есть процесс всё ещё может туда обращаться. Это при одной фазе луны. При другой фазе луны память выделилась по-другому и обращение по висячему указателю было поймано железом.
Исходная версия kvap, :
Это не Undefined Behavior. UB значит, что реализация может быть какой угодно. Но если не менять версию компилятора и библиотек, то они поведут себя одинаково.
Здесь дело может быть в том, что память выделяется системой сразу большим куском. И то, что ты в программе сделал free() фактически не вернуло системе память, то есть процесс всё ещё может туда обращаться. Это при одной фазе луны. При другой фазе луны память выделилась по-другому и обращение по висячему указателю было поймано железом.