Ошибка переполнения буфера, появляющаяся случайным образом и затем исчезающая - PullRequest
1 голос
/ 01 февраля 2011

У меня проблема с одной из моих программ, в которой внезапно появилась ошибка переполнения буфера после того, как я добавил еще несколько функций в программу.Ошибка обнаружилась в самом начале программы, раздел, который был совершенно не связан с новым кодом, который я добавил.После установки пары точек останова, чтобы сузить источник ошибки, ошибка исчезла при следующем запуске.

Может кто-нибудь просто концептуально объяснить мне, какие ситуации могли вызвать проблему, с которой я столкнулся?Я не прошу вас отлаживать мой код, но, скорее, дайте мне некоторое представление о том, что могло произойти, чтобы я мог избежать повторной проблемы.

Ответы [ 2 ]

1 голос
/ 01 февраля 2011

У этой ошибки запах динамических данных становится слишком длинным для предварительно назначенного (я имею в виду, во время компиляции) массива хранения, но я думаю, что сообщение об ошибке «переполнение буфера» - просто случайная красная сельдь. В качестве первого шага я бы попытался удвоить размеры всех моих статических массивов или, что еще лучше, увеличить их размеры на большое число - например, 100 000 - и я бы перезапустил программу. Если программа работает нормально, вы можете просмотреть код, чтобы найти нарушающий раздел.

Если программа все еще не работает, значит, вы столкнулись с ошибкой, которую труднее найти.

НТН

- Пит

0 голосов
/ 01 февраля 2011

Заполните ваш код, полный ASSERT! Извлеченный из адского опыта, это то, что я теперь делаю естественно, имея дело с кодом обработки буфера.

...