Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/37: Рейтинг темы: голосов - 37, средняя оценка - 4.73
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
1

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

13.05.2013, 00:46. Показов 7441. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите, пожалуйста кто-нибудь, в чем беда... Во время выполения программы пишет, что буфер переполнен, что точка останова смещена и "Дополнительные сведения см. в разделе "Инструкции по отладке в случае переполнения буфера"". Как справиться с сией проблемой? Что нужно изменять в коде программы?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2013, 00:46
Ответы с готовыми решениями:

переполнение буфера
Что такое переполнение буфера?

Переполнение буфера
Добрый день! В общем: #include "stdafx.h" #include <iostream> using namespace std; int...

Переполнение буфера
Не могу найти, где у меня ошибка, выдает переполнение буфера, подскажите пожалуйста. Здесь...

Переполнение буфера
В программе имеется форма и записывается текстовые файлы. Когда она запускается всё работает...

26
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
13.05.2013, 20:56  [ТС] 21
Author24 — интернет-сервис помощи студентам
Вот в том то и дело, что нельзя библиотеки использовать сторонние. Надо свой класс создать. Задание вот такое=)
0
Модератор
Эксперт по электронике
8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,524
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 красный
это надо в спецификации смотреть
0
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
14.05.2013, 08:29  [ТС] 23
Все сделал, еще одна проьлема заключалась в том, что я использовал 16-цветное изображение, а надо было 256-цветное. Флаг рисует хорошо, все ровно, без мусора. Вот только еще по заданию нужно перегрузить операторы >> и <<, где << - оператор записи в файл, а >> - чтение из файла. Но в классе так много полей..Да и файл двоичный. Как выполнить перегрузку?=)
0
Модератор
Эксперт по электронике
8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,524
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 Посмотреть сообщение
Да и файл двоичный.
ты не поверишь на диске все файлы двоичные
0
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
14.05.2013, 21:07  [ТС] 25
И все таки немного не догоняю, как..
C++
1
2
3
4
istream& operator >>(istream& is, BMP& h)
{
return is>>     //А что вот тут, не пойму
}
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
14.05.2013, 21:53 26
Цитата Сообщение от Eagle123 Посмотреть сообщение
//А что вот тут, не пойму
Тут должны быть поля BMP, для которых уже определена операция чтения из потока >>.
0
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
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();
    
}
Нельзя её применить в перегрузке оператора? Если можно, то как это можно сделать?=)
0
14.05.2013, 22:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2013, 22:14
Помогаю со студенческими работами здесь

Переполнение буфера
Объясните почему вылетает ошибка и помогите исправить. Зарание спасибо возникло переполнение...

Переполнение буфера! (наверное)
Идет открытие порта звуковой карты, получение битов, запись битов в буфер и дальнейшие манипуляции...

Переполнение буфера . Что делать ?
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() {...

Переполнение буфера при вводе
Есть код char arr; cin &gt;&gt; arr; Он работает, но не очень понятно как, и судя по всему имеет...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru