Я делаю приложение с использованием SDL 2. Недавно я начал использовать библиотеку SDL_Mixer, и это вызвало проблему для меня. Простите меня, если мое объяснение кажется расплывчатым, так как эта ошибка очень запутанна.Моя программа вылетает иногда, когда delete вызывается на один конкретный указатель
Иногда, когда вы закрываете мою программу, программа вылетает из строя. Только иногда это происходит. После удаления частей кода я обнаружил, что строка, вызывающая это, была простым вызовом delete
на указателе типа Window*
. Если я удалю этот вызов удаления, больше никаких сбоев не произойдет, когда я закрою программу. Еще одна важная вещь - отметить, что авария происходит сразу после того, как вызывается delete
, что означает, что программа даже не входит в ~Window()
, что действительно странно.
Что-то еще я заметил, что когда я удаляю вызов Mix_OpenAudio(...)
с начала программы, никаких сбоев вообще не происходит, независимо от того, существует ли вызов удаления. Таким образом, инициализация SDL_Mixer имеет какое-то отношение к сбоям, но это просто добавляет больше путаницы.
Я надеюсь, что у кого-то есть представление о том, что может быть проблемой здесь, но если мое объяснение слишком расплывчато, я попытаюсь воспроизвести проблему в достаточно маленький сегмент кода, который я могу разместить здесь. Я не хотел копировать всю свою кодовую базу на этот вопрос, потому что я не хочу, чтобы мода ненавидела меня. Есть идеи?