|
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 11
|
||||||
Куча была повреждена и прочие радости05.03.2017, 17:45. Показов 12661. Ответов 22
В каждом байте BMP изображения программа подменяет последние несколько бит на биты какого-то файла (отдельно есть алгоритм, извлекающий эту информацию, но с ним ничего нельзя сделать пока не заработает этот). За два месяца 4 раза полностью с нуля переписывал код, перепробовал все, что только смог за это время придумать, но на выходе всегда получал одно и то же: "ConsoleApplication11 triggered a breakpoint", и после либо "Куча была повреждена", либо "Read access violation", либо какие-нибудь другие ошибки, которые я даже идентифицировать не в состоянии. Краткие комментарии в коде есть, но могу в любой момент подробно описать, что делает любой участок кода. Буду безмерно благодарен человеку, которому удастся прекратить мои страдания, или хотя-бы немного приблизит меня к решению проблемы.
Пользуюсь MSVS 2015
0
|
||||||
| 05.03.2017, 17:45 | |
|
Ответы с готовыми решениями:
22
Необработанное исключение: куча была повреждена Куча была повреждена, работа с указателями Куча была повреждена. При выделении памяти |
|
284 / 232 / 114
Регистрация: 07.09.2016
Сообщений: 584
|
|
| 05.03.2017, 18:22 | |
|
1
|
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|
| 05.03.2017, 19:43 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 11
|
||||||
| 05.03.2017, 21:25 [ТС] | ||||||
|
Это функция, получающая на вход полное имя файла, и возвращающая его размер в байтах
Конкретно ee функцию писал не я
0
|
||||||
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|
| 05.03.2017, 21:32 | |
|
У меня, указанную строку, компиляторы не пропускают. Не знают такую функцию stat. У тебя компилируется? В какой среде?
0
|
|
|
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 11
|
|
| 05.03.2017, 21:40 [ТС] | |
|
Так что, nd2, точно сказать не могу
0
|
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|
| 05.03.2017, 21:42 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 11
|
|
| 05.03.2017, 21:43 [ТС] | |
|
nd2, VisualStudio 2015
0
|
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|
| 05.03.2017, 21:44 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 11
|
|
| 05.03.2017, 21:45 [ТС] | |
|
nd2, да, спокойно компилируется
0
|
|
|
Вездепух
12936 / 6803 / 1821
Регистрация: 18.10.2014
Сообщений: 17,215
|
||
| 05.03.2017, 21:52 | ||
int *gs = new int; Это в "переписанном с нуля коде"?
0
|
||
|
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 11
|
|
| 05.03.2017, 21:57 [ТС] | |
|
TheCalligrapher, ну, с опытом у меня мягко говоря напряженка
а входных данных нет, они непосредственно в коде проверки открытия нет, так как гарантируется, что файлы могут быть открыты
0
|
|
|
Вездепух
12936 / 6803 / 1821
Регистрация: 18.10.2014
Сообщений: 17,215
|
|||
| 05.03.2017, 22:00 | |||
|
Чего стоит только одна манера работать с массивами в стиле
*(v + i*llb + c2). Кто это будет читать? Нормальный человеческий оператор [] запретили указом свыше?
0
|
|||
|
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 11
|
|
| 05.03.2017, 22:01 [ТС] | |
|
TheCalligrapher, как научили, так и делаю, а самосовершенствование - процесс не моментальный
0
|
|
|
Вездепух
12936 / 6803 / 1821
Регистрация: 18.10.2014
Сообщений: 17,215
|
|||
| 05.03.2017, 22:06 | |||
[]. В чем ваша логика переключения туда-сюда между доступом по a[i] и доступом по *(a + i)? Научите меня тоже.assert на невыход индексов за пределы массива. Добавляйте проверки на невыход за пределы массива - и, я уверен, проблема обнаружится быстро.
0
|
|||
|
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 11
|
|
| 05.03.2017, 22:13 [ТС] | |
|
TheCalligrapher, Прошу прощения, сразу не понял
Первый входной файл (626 162 байт) - 24 битное BMP изображение 550x379 Тип второго файла (217 414 байт) не имеет значения Добавлено через 1 минуту TheCalligrapher, спасибо, попробую
0
|
|
|
Вездепух
12936 / 6803 / 1821
Регистрация: 18.10.2014
Сообщений: 17,215
|
||||||
| 05.03.2017, 22:25 | ||||||
|
Вот, например
ext идет по индексу 4, что является выходом за пределы массива.Тут же: доступ в имя файла flpath делается с индексами bm.length() - 1 и ниже. Это с чего это? Какова вообще связь содержимого строки bm (которая к этому моменту содержит "111") с содержимым строки flpath (которая содержит имя файла)??? Переменная c3 уходит в отрицательные значения... То есть какая-то логика в этих действиях отсутствует вообще в принципе.
1
|
||||||
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|||||||
| 05.03.2017, 22:30 | |||||||
1
|
|||||||
|
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 11
|
|||||||
| 05.03.2017, 22:58 [ТС] | |||||||
|
TheCalligrapher, И как я мог не заменить такое огромное количество косяков на квадратный сантиметр в этом месте
Код исправил, куча больше не повреждается
Добавлено через 10 минут
0
|
|||||||
|
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 11
|
|
| 05.03.2017, 23:00 [ТС] | |
|
Также открывается вот это
0
|
|
| 05.03.2017, 23:00 | |
|
Помогаю со студенческими работами здесь
20
"Куча была повреждена" и "<Имя проекта> вызвал срабатывание точки останова" в самых разных местах программы Повреждена куча Повреждена куча при работе с динам. памятью. Почему? Как исправить? Smartsputnik и прочие прилагаемые радости
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|