Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
alesha Гость
|
Добавлено: Ср Окт 20 2004 16:23 Заголовок сообщения: Windows даёт ошибку при программировании |
|
|
Привет!
Пишу прогу на C++ Builder. Программа итерационно пересчитавает огромные массивы данных для нахождения оптимума.
Иногда возникает следующая ошибка
"Access violation at address 32566645 in module "CC3250M.DLL". Read of address F864A148".
Возникает в одном и том же месте.
Может кто дельного что посоветует...
Заранее спасибо. |
|
Вернуться к началу |
|
|
FUKS
Зарегистрирован: 14.04.2002 Сообщения: 148 Откуда: Москва
|
Добавлено: Чт Окт 21 2004 13:26 Заголовок сообщения: Re: Windows даёт ошибку при программировании |
|
|
1. Попробовать пройти это место под отладчиком. У отладчика обычно есть функция типа "остановиться после n проходов".
2. Всем переменным присваиваить значения при объявлении, на сях помогало. |
|
Вернуться к началу |
|
|
sars
Зарегистрирован: 13.11.2004 Сообщения: 4
|
Добавлено: Сб Ноя 13 2004 08:54 Заголовок сообщения: |
|
|
Насколько я понял, на лицо чистой воды выход за границы массива. Проверяйте индексы доступа. А чтобы особо не мучиться (это для BCB) надо подключить к проге CodeGuard (есть такая вкладка на Project->Options). Это такая статическая библиотека для отладки. В хелпе все написано. Она отлично находит такие вещи (вплоть до строки кода).
Удачи! _________________ С уважением, Роман |
|
Вернуться к началу |
|
|
yeziz Гость
|
Добавлено: Вс Ноя 14 2004 12:59 Заголовок сообщения: |
|
|
Причин может быть две:
1. Чтение запись по невалидному указателю (в т.ч., выход за границу массива).
2. Затирание адреса возврата на стеке.
Постарайся добиться четкого воспроизведения (на каких входных данных, в какой ситуации происходит) проблемы.
Проверь под отладчиком на какой операции происходит сбой. Убедись, что все указатели валидны и в них содержится то, что ты ожидаешь.
ОБЯЗАТЕЛЬНО инициализировать переменные (ВСЕ!) при объявлении. |
|
Вернуться к началу |
|
|
|