Как обнаружить «висячие указатели», если «Assigned ()» не может это сделать?
В другойвопросЯ узнал, чтоAssigned()
функция идентичнаPointer <> nil
, Я всегда понимал, чтоAssigned()
обнаруживал эти висячие указатели, но теперь я узнал, что это не так. Dangling Pointers - это те, которые могли быть созданы в одной точке, но с тех пор были свободны и не были назначеныnil
все же.
ЕслиAssigned()
не может обнаружить висячие указатели, тогда что может? Я хотел бы проверить свой объект, чтобы убедиться, что он действительно является действительным созданным объектом, прежде чем пытаться работать с ним. Я не пользуюсьFreeAndNil
как многие рекомендуют, потому что мне нравится быть прямым. Я просто используюSomeObject.Free
.
Нарушения доступа - мой злейший враг - я делаю все возможное, чтобы не допустить их появления.