Мне интересно, что произойдет, если я попытаюсь выполнить delete
на указателе, который уже удален, или может быть не выделено? Я прочитал две вещи: во-первых, оператор delete
будет выполнять некоторые проверки, и нам не нужно проверять, является ли указатель нулевым; а затем я прочитал, что это может привести к неизвестному поведению ...
Я спрашиваю об этом, потому что я использую некоторые личные объекты, которые содержат атрибуты объектов Qt; Я думаю, что Qt удаляет все связанные виджеты, когда мы закрываем окно, но я не совсем уверен: если мягкий сбой происходит до закрытия окна, мы должны удалить все объекты вручную.
Итак, какое было бы лучшее решение? Что-то вроде этого?
if( my_object )
delete my_object;
Можно ли избежать опасного поведения?