|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
Переполнение буфера13.05.2013, 00:46. Показов 8372. Ответов 26
Метки нет (Все метки)
Подскажите, пожалуйста кто-нибудь, в чем беда... Во время выполения программы пишет, что буфер переполнен, что точка останова смещена и "Дополнительные сведения см. в разделе "Инструкции по отладке в случае переполнения буфера"". Как справиться с сией проблемой? Что нужно изменять в коде программы?
0
|
|
| 13.05.2013, 00:46 | |
|
Ответы с готовыми решениями:
26
переполнение буфера Переполнение буфера Переполнение буфера |
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||
| 13.05.2013, 00:49 | ||
|
без кода ничего никто не скажет. какой буфер, где и при каких условиях.
в таких случаях кэп советует
0
|
||
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
||||||||||||||||
| 13.05.2013, 01:09 [ТС] | ||||||||||||||||
|
Вот код программы:
Заголовочный файл класса
Добавлено через 2 минуты И выделенный момент с ошибкой: "8-bit_BMP.exe": Загружено: "D:\Vs\8-bit_BMP\Debug\8-bit_BMP.exe", Символы загружены. "8-bit_BMP.exe": Загружено: "C:\Windows\System32\ntdll.dll", Невозможно найти или открыть файл PDB "8-bit_BMP.exe": Загружено: "C:\Program Files\AVAST Software\Avast\snxhk.dll", Невозможно найти или открыть файл PDB "8-bit_BMP.exe": Загружено: "C:\Windows\System32\kernel32.dll", Невозможно найти или открыть файл PDB "8-bit_BMP.exe": Загружено: "C:\Windows\System32\KernelBase.dll" , Невозможно найти или открыть файл PDB "8-bit_BMP.exe": Загружено: "C:\Windows\System32\msvcp100d.dll", Символы загружены. "8-bit_BMP.exe": Загружено: "C:\Windows\System32\msvcr100d.dll", Символы загружены. Первый этап обработки исключения в "0x00af5286" в "8-bit_BMP.exe": 0xC0000005: Нарушение прав доступа при чтении "0x999999a5". В 8-bit_BMP.exe возникло переполнение буфера, что привело к повреждению внутреннего состояния программы. Нажмите кнопку "Прервать", чтобы отладить программу, или кнопку "Продолжить", чтобы завершить программу. Дополнительные сведения см. в разделе "Инструкции по отладке в случае переполнения буфера". В 8-bit_BMP.exe возникло переполнение буфера, что привело к повреждению внутреннего состояния программы. Нажмите кнопку "Прервать", чтобы отладить программу, или кнопку "Продолжить", чтобы завершить программу. Дополнительные сведения см. в разделе "Инструкции по отладке в случае переполнения буфера". STATUS_STACK_BUFFER_OVERRUN encountered 8-bit_BMP.exe привело в действие точку остановка Программа "[7212] 8-bit_BMP.exe: Машинный код" завершилась с кодом -1073740791 (0xc0000409).
0
|
||||||||||||||||
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
| 13.05.2013, 01:22 | |
|
осваивайте отладку программ.
в студии с этим все просто. беглый взгляд падает на строку 14: f.read((char*)& RGB, 1024); возможно хотелось так: f.read((char*)RGB, 1024);
1
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 01:29 [ТС] | |
|
Исправление этого момента помогло..Немного. Теперь буфер не переполняется, но все равно программа падает
0
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 01:30 [ТС] | |
|
Как я понимаю, ему не нравится размер, вот только размер чего? И почему не нравится?
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 13.05.2013, 08:19 | ||
|
0
|
||
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
||||||
| 13.05.2013, 08:24 [ТС] | ||||||
0
|
||||||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|
| 13.05.2013, 08:36 | |
|
Eagle123,
вот на этой картинке что ты привел нажми продолжить программа упадет еще раз тогда нажми прервать и попадешь в отладчик на точку что вызвала исключение скорее всего попадешь в какую нибудь системную функцию тогда идешь в отладчике в окошка стека там будет список функций которые вызваны до аварии просмотри их сверху вниз и тогда дойдешь до строки с неправильными параметрами
1
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 14:40 [ТС] | |
|
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 13.05.2013, 14:46 | |
|
0
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 18:46 [ТС] | |
|
В итоге считывается информация из файла правильно, и массив создается тоже верно.
И все бы хорошо, только рисует не флаг, а вот это.
0
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
||||||
| 13.05.2013, 18:47 [ТС] | ||||||
|
Вот функция, которая это рисует. Что-то тут не так
0
|
||||||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|
| 13.05.2013, 19:12 | |
|
Eagle123,
А ты откуда берешь размеры Из заголовка файла? а ты учел что там два размера размер картинки и размер буфера выравненный то ли на 2 то ли на 4 (нет сейчас спецификации под рукой) и они могут различаться и учти что в BMP шке картинка размещена вверх ногами т.е самая нижняя строчка в буфере самая первая Добавлено через 1 минуту Да и с палирой разберись ты видать её не загружаешь у французского флага никак не такие цвета
1
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 19:22 [ТС] | |
|
С цветами все нормально. Там если увеличить, то видны нужные полосы (синего, белого и красного цветов). Только на картинке они накладываются друг на друга... Получается, если запись идет с конца, то надо делать не сине-бело-красный, а красно-бело-синий флаг?? А вот с размерами теперь не ясно, там же в структуре заголовка только одна длина и ширина?
Еще нашел, что надо учитывать кол-во байтов на пиксель..Это так?
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 13.05.2013, 19:36 | ||
|
http://www.firststeps.ru/mfc/msdn/r.php?114
Вот это 22h 4 biSizeIm Размер изображения в байтах и это 12h 4 biWidth Ширина Bitmap-а в пикселях 16h 4 biHeight Высота Bitmap-а в пикселях Добавлено через 3 минуты то считываешь 1 байт красный 2 байт зеленый 3 байт синий 4 зарезервирован т.е на одну точку считывать нужно 4 байта если 256 цветов то на одну точку 1 байт а если двухцветное изображение то один байт на 8 точек Добавлено через 44 секунды вот еще http://c-site.h1.ru/infa/bmp_struct.htm сноску почитай
1
|
||
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 19:40 [ТС] | |
|
Размер изображения в байтах = 226000, размер в пикселях т.е. h.bih.biHeight * h.bih.biWidth = 900 * 500 = 450000. И по каким размерами тогда составлять массив для цветов и записывать его, по байтам??
Добавлено через 2 минуты Изображение 16-ти цветное
0
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 19:47 [ТС] | |
|
Изменил началиный размер изображения ( сделал размеры сторон кратные 4), получилось вот так
0
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 19:51 [ТС] | |
|
Но сразу заметно, что изображение закрашено не полностью, видны какие-то полосы. Поэтому цвета так смешиваются
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 13.05.2013, 20:49 | ||
|
или поройся в сети найди готовые библиотеки
0
|
||
| 13.05.2013, 20:49 | |
|
Помогаю со студенческими работами здесь
20
Переполнение буфера Переполнение буфера Переполнение буфера! (наверное) Переполнение буфера . Что делать ? Переполнение буфера при вводе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает
Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|