Как обнаружить «висячие указатели», если «Assigned ()» не может этого сделать?

В другом вопросе я обнаружил, что Assigned () функция идентична Pointer nil . Я всегда понимал, что Assigned () обнаруживал эти висячие указатели, но теперь я узнал, что это не так. Висячие указатели - это те, которые могли быть созданы в какой-то момент, но с тех пор были освобождены и еще не присвоены nil .

Если Assigned () не может обнаружить висячие указатели, то что может? Я хотел бы проверить свой объект, чтобы убедиться, что это действительно действительный созданный объект, прежде чем я попытаюсь с ним работать. Я не использую FreeAndNil , как многие рекомендуют, потому что мне нравится быть прямым. Я просто использую SomeObject.Free .

Нарушения доступа - мой злейший враг - я делаю все возможное, чтобы предотвратить их появление.

14
задан Community 23 May 2017 в 12:34
поделиться