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