Я обнаружил классическую ошибку несоответствия new/delete в нашей базе кода следующим образом:
char *foo = new char[10];
// do something
delete foo; // instead of delete[] foo;
Насколько серьезно это? Это вызывает утечку памяти или ошибку? Каковы последствия. У нас есть проблемы с памятью, но это не кажется достаточно серьезным, чтобы объяснить все наши симптомы (куча коррупции и т.д.).
EDIT: дополнительные вопросы для ясности
Он просто освобождает первый член массива? или
Из-за этого система теряет контроль над массивом? или
Коррумпированная память - это какой-то способ?