Ваша гипотеза почти наверняка верна.За исключением систем с очень высоким уровнем безопасности или при использовании отладочных систем, нет причин перезаписывать освобожденную память (что и происходит с операцией удаления).
На самом деле, даже сам выпуск может не произойтинемедленно, а лучше выполнить в более удобное время (эта операция может усложниться и стать так называемым сборщиком мусора , что, в свою очередь, может сделать использование явных выпусков ненужным - но тема усложняется).
Таким образом, до этого момента память все еще доступна и может использоваться.Даже после этого существует вероятность того, что значение не будет повторно использовано и перезаписано, и все еще будет жизнеспособным (что может способствовать скрытию того, что на самом деле является опасной ошибкой).Конечно, у вас нет никаких гарантий, и попытка получить доступ к освобожденной памяти может привести к всевозможным проблемам.
Для обнаружения ошибок такого рода в некоторых системах вы можете связать свой исполняемый файл с другим диспетчером памяти или библиотекой.это перезапишет память, которая скоро будет выпущена, случайными или контрольными значениями перед ее фактическим освобождением.В старых системах, которые не имели реальной поддержки аппаратной защиты, например, MS-DOS, это была единственная возможная проверка, и она оставалась популярным в течение некоторого времени (я помню, например, electricfence ).