Хотя возможно, что ваша среда выполнения не сообщит об этой ошибке, используя надлежащую проверку выполнения ошибок, например, Valgrind предупредит вас об использовании памяти после ее освобождения.
Я рекомендую, чтобы если вы пишете код с помощью new
/ delete
и необработанных указателей (вместо std::make_shared()
и т.п.), вы выполняете свои модульные тесты под Valgrind, чтобы хотя бы иметь возможность обнаружить такие ошибки.
Уровни проверки выполняются, когда вы вызываете функцию вулкана api. Если вы не уничтожаете устройство, уровни проверки не будут предупреждать вас обо всех материалах, связанных с устройством, которое вы забыли уничтожить.