HardпамятьUB
Что такое heap corruption и какие симптомы?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Heap corruption — повреждение метаданных кучи: write за границы, double free, use-after-free с последующей аллокацией.
// 1) Запись за границы массива
int* a = new int[10];
a[10] = 0; // портит служебные поля рядом
// 2) Use-after-free
int* p = new int(5);
delete p;
*p = 10; // запись в перевыделенную памятьСимптомы: нестабильные падения далеко от причины, free(): invalid pointer, мусор в данных. Обнаружение: ASan, Valgrind, debug-аллокаторы. Профилактика: RAII, at() вместо [], sanitizer’ы в CI.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.