У меня есть простая игра в стиле танковых войн с использованием библиотеки с открытым исходным кодом allegro. В моем классе tank я инициализирую массивы указателей для растровых объектов равными 0. Затем я создаю новые объекты с помощью функции allegro create_bitmap, которая выделяет память и инициализирует ее.
Тогда я занимаюсь своими делами как обычно.
Проблема в том, что когда я собираюсь освободить растровую память в деструкторе класса, как хороший ОО-мальчик, я сбой программы, потому что в этой конкретной программе библиотека allegro выполняет очистку (которая освобождает созданные им растровые объекты) до того, как класс выйдет за рамки и будет уничтожен. Он не устанавливает мои указатели снова в NULL, поэтому я не могу проверить, все ли действительны ли растровые изображения, и если я попытаюсь их освободить, программа вылетит.
Есть ли способ обойти это? Могу ли я проверить действительные указатели, если они не равны NULL? Как я могу быть уверен, что память освобождается, если в программе используется другой способ. В настоящее время я, по сути, звоню new без удаления, и мне это не нравится.