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