Хотя возможно, что ваша среда выполнения не сообщит об этой ошибке, используя надлежащую проверку выполнения ошибок, например, Valgrind предупредит вас об использовании памяти после ее освобождения.
Я рекомендую, чтобы если вы пишете код с помощью new
/ delete
и необработанных указателей (вместо std::make_shared()
и т.п.), вы выполняете свои модульные тесты под Valgrind, чтобы хотя бы иметь возможность обнаружить такие ошибки.
ZIP - это формат контейнера, когда GZip является только потоковым форматом (используется для хранения одного файла). Вот почему при распаковке нового ZIP-файла вам нужно сначала начать запись (давая имя), а затем после закрытия закрыть эту запись перед закрытием контейнера. См. Пример здесь: https://www.programcreek.com/java-api-examples/?class=java.util.zip.ZipOutputStream&method=putNextEntry