Форум программистов, компьютерный форум CyberForum.ru

Переполнение буфера - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
Eagle123
6 / 6 / 0
Регистрация: 03.10.2012
Сообщений: 51
13.05.2013, 00:46     Переполнение буфера #1
Подскажите, пожалуйста кто-нибудь, в чем беда... Во время выполения программы пишет, что буфер переполнен, что точка останова смещена и "Дополнительные сведения см. в разделе "Инструкции по отладке в случае переполнения буфера"". Как справиться с сией проблемой? Что нужно изменять в коде программы?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2013, 00:46     Переполнение буфера
Посмотрите здесь:

C++ переполнение буфера
C++ Переполнение буфера
C++ Переполнение буфера! (наверное)
Переполнение буфера . Что делать ? C++
C++ Переполнение буфера
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Eagle123
6 / 6 / 0
Регистрация: 03.10.2012
Сообщений: 51
13.05.2013, 20:56  [ТС]     Переполнение буфера #21
Вот в том то и дело, что нельзя библиотеки использовать сторонние. Надо свой класс создать. Задание вот такое=)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
13.05.2013, 22:22     Переполнение буфера #22
Цитата Сообщение от Eagle123 Посмотреть сообщение
Вот в том то и дело, что нельзя библиотеки использовать сторонние.
можешь не использовать а только посмотреть
там ничего сложного с точки зрения алгоритма, сложность в приведении
один и тот же байт в зависимости от настройки обозначает разные данные или это цвет или индекс палитра или 4 пиксела
у тебя 16 бит это значит на один пиксель два байта
я сейчас не помню но по моему он так кодируется 16 15 14 13 12 бит синий 11 10 9 8 7 6 зеленый 5 4 3 2 1 красный
это надо в спецификации смотреть
Eagle123
6 / 6 / 0
Регистрация: 03.10.2012
Сообщений: 51
14.05.2013, 08:29  [ТС]     Переполнение буфера #23
Все сделал, еще одна проьлема заключалась в том, что я использовал 16-цветное изображение, а надо было 256-цветное. Флаг рисует хорошо, все ровно, без мусора. Вот только еще по заданию нужно перегрузить операторы >> и <<, где << - оператор записи в файл, а >> - чтение из файла. Но в классе так много полей..Да и файл двоичный. Как выполнить перегрузку?=)
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
14.05.2013, 09:58     Переполнение буфера #24
Цитата Сообщение от Eagle123 Посмотреть сообщение
Но в классе так много полей..Да и файл двоичный. Как выполнить перегрузку?=)
у тебя же все реализовано
Цитата Сообщение от Eagle123 Посмотреть сообщение
void BMP::ReadQuad(tagRGBQUAD* RGB, int biSize, char* filename)
..........
BMP BMP::read_BMP_info(char* filename)
может палитру еще надо считывать, создай метод
и создай также методы записи структуры массива
а потом это все объедини
Цитата Сообщение от Eagle123 Посмотреть сообщение
Да и файл двоичный.
ты не поверишь на диске все файлы двоичные
Eagle123
6 / 6 / 0
Регистрация: 03.10.2012
Сообщений: 51
14.05.2013, 21:07  [ТС]     Переполнение буфера #25
И все таки немного не догоняю, как..
C++
1
2
3
4
istream& operator >>(istream& is, BMP& h)
{
return is>>     //А что вот тут, не пойму
}
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
14.05.2013, 21:53     Переполнение буфера #26
Цитата Сообщение от Eagle123 Посмотреть сообщение
//А что вот тут, не пойму
Тут должны быть поля BMP, для которых уже определена операция чтения из потока >>.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2013, 22:14     Переполнение буфера
Еще ссылки по теме:

C++ Не получается сделать переполнение буфера
Переполнение буфера C++
Переполнение буфера, адрес возврата C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Eagle123
6 / 6 / 0
Регистрация: 03.10.2012
Сообщений: 51
14.05.2013, 22:14  [ТС]     Переполнение буфера #27
Т.е. все поля, которые содержит класс, всю кучу?
А нельзя ли тут как-то применить функцию. которая уже описана в классе. С её помощью мы прочитываем информацию из заголовка:
C++
1
2
3
4
5
6
7
8
9
10
void BMP::read_BMP_info(char* filename)
{
    fstream f(filename, ios::binary | ios::out | ios::in);
    f.seekg(0, ios::beg);
    f.read((char*)& this->bh,sizeof(bh));
    f.read((char*)& this->bih,sizeof(bih));
    this->ReadQuad(RGBQuad, this->bih.biSize + 14, filename);
    f.close();
    
}
Нельзя её применить в перегрузке оператора? Если можно, то как это можно сделать?=)
Yandex
Объявления
14.05.2013, 22:14     Переполнение буфера
Ответ Создать тему
Опции темы

Текущее время: 15:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru