Программа ест все больше памяти? Скорее всего у вас
memory leak. Это не приговор и можно исправить, и вот как🙂📝 Пошаговое решение:
- Используйте
Valgrind или AddressSanitizer- Найдите несоответствие new/delete
- Замените сырые указатели на smart pointers
- Проверьте циклические ссылки
// ❌ Проблемный код
void problematic() {
int* data = new int[1000];
if (some_condition) {
return; // Утечка памяти!
}
delete[] data;
}
// ✅ Исправленный код
void fixed() {
auto data = std::make_unique<int[]>(1000);
if (some_condition) {
return; // Память освободится автоматически
}
}
⚠️ Частые ошибки:
- Забывают
delete при раннем return- Путают
delete и delete[]💡 Совет:
- Компилируйте с флагом
-fsanitize=address для автоматического поиска утечек.Библиотека C/C++ разработчика #буст
