Ошибка сегментации при попытке уничтожить sf :: Font

Я работаю с пакетом SFML и получаю ошибку сегментации при попытке закрыть окно / программу. Я нашел строку в моем коде, которая приводит к ошибке сегментации, когда я пытаюсь уничтожить sf::Font используется для рисования текста в окне SFML.

Линия просто:

delete button_font; (который имеет тип sf::Font*)

То, что я прочитал из документации SFML, sf::Font У класса есть деструктор. Я также протестировал его сразу после определения объекта шрифта, он сам себя разрушил, как и ожидалось.

Шрифт загружается sf::Font::loadFromFile(~), Он используется в качестве аргумента в качестве ссылки в некоторых классах, используемых как игровые состояния и меню. Может ли быть проблемой, что он используется несколькими sf::Text объекты, когда я пытаюсь удалить шрифт?

2

Решение

Указатели и динамическая память — одна из хитрых вещей в C ++. Есть много способов потерпеть неудачу, я думаю, что вы удалили указатель, который вы не создали с new во-первых, или, может быть, вы удалили его дважды, потому что два объекта содержали указатель на него.

Пока там может быть хорошим решением для вашей прямой проблемы, то реальный Решение использует умный указатель.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]