Если у вас есть free
d блок памяти, повторное чтение этой памяти приводит к неопределенному поведению и представляет серьезную угрозу безопасности и стабильности. Вы не можете рассчитывать на то, что значение true для памяти было free
d, поэтому нет гарантии, будет ли память обнулена или нет. Если вы абсолютно не уверены в том, что делаете, не ссылаются на память после того, как вы ее освободили.
В качестве забавного анекдота об этом в оригинальной игре SimCity была ошибка, в которой она ссылалась на освобожденную память. В DOS это не привело к сбою, но когда оно было перенесено на Windows, игра начинала сбоить несколько раз. Команда Windows должна была специально встроить кейс в ОС, чтобы при запуске SimCity использовался специальный менеджер памяти для предотвращения такого рода сбоев. Вы можете прочитать полную историю здесь .
Короче, как только он освободится, не трогай его. В противном случае вы рискуете ошибками, которые некоторым бедным программистам в будущем придется исправить за вас. Такие инструменты, как valgrind, существуют для обнаружения ошибок такого рода именно потому, что они такие неприятные.
Надеюсь, это поможет!