Glibc обнаружил повреждение памяти malloc () (0xb6179bb8) при вызове нового ключевого слова C ++ - PullRequest
2 голосов
/ 01 октября 2010

Моя программа запускается до точки, в которой вызов ключевого слова new приведет к указанной выше ошибкето есть char* a = new char[100].Ошибка воспроизводима и каждый раз.Я запускаю программу до тех пор, пока не будет вызвано ключевое слово new .Кажется, в этой точке память повреждена, но я не уверен, в чем его проблема.

Каковы возможные причины этой ошибки?

1 Ответ

10 голосов
/ 01 октября 2010

Эта ошибка означает, что вы повредили бухгалтерские данные администратора системной памяти.Такие повреждения обычно являются результатом неправильного использования указателей, например

  • Использование неинициализированного указателя
  • Использование указателя после освобождения памяти, на которую он ссылается (освобождение можетпроизошло через другой указатель)
  • Запись за пределами вашего массива
...