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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычисление суммы первых N членов ряда и запись результатов в файл http://www.cyberforum.ru/cpp-beginners/thread863051.html
Помогите пожалуйста. Очень надо:))) Написать программу, которая вычисляет сумму первых N членов ряда 1+1/2+1/3+1/4+... Исходные данные (N – количество суммируемых членов ряда) вводятся из файла Input.txt. Результаты работы программы записываются в файл Out.txt.
C++ Сложение цифр в числе народ помогите,пожалуйста, не могу написать программу сложения чисел в числе,без использования цикла и его операторов,мы до них еще не дошли,кровь из носу на завтра она нужна,тут же на форуме нашел ,но она с циклом а как без его использования можно ее написать,а если нельзя тогда напишите что нельзя,мне нужен аргументированный подход,а то не поверят моим аргументам http://www.cyberforum.ru/cpp-beginners/thread863049.html
Диалог с прльзователем C++
Дело в том что есть такая вот программа и я не могу додуматься как бы мне в ней реализовать диалог с пользователем то есть красиво вывести переменные по его выбору x y z max min nomermax nomermin. В конце программы есть вывод на экран но не много не то # ifndef _MAS_H_ #define _MAS_H_ #include<iostream> #include<math> using namespace std; const n=10; class mas
C++ Неправильный вывод данных
Программа о авторе книги и его, собственно, книге. Надо подсчитать заработок за все переиздательства книги и общий налог. Формуы подставил, но выводит неправильное число. Нужен взгляд эксперта:) #include "stdafx.h" #include <iostream> using namespace std; char s; class book { char author, //Имя автора printing, //Издательство edition, //Номер издания
C++ Разработать алгоритм и программу для решения задачи http://www.cyberforum.ru/cpp-beginners/thread863028.html
помогите написать программу по этой задаче:
C++ Составить программу вычисления суммы любого количества произвольных чисел Задача составить программу вычисления суммы любого количества произвольных чисел #include "time.h" #include "stdio.h" #include "stdlib.h" #include "conio.h" #include "locale" #include "math.h" using namespace std; int main(void) { подробнее

Показать сообщение отдельно
Eagle123
6 / 6 / 0
Регистрация: 03.10.2012
Сообщений: 51
13.05.2013, 01:09  [ТС]     Переполнение буфера
Вот код программы:
Заголовочный файл класса
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include "bmp_structs.h"
using namespace std;
 
class BMP
{
public:
    BitMapHeader bh;
    BitMapInfoHeader bih;
    RGBQUAD RGBQuad[256];
    BMP();
    void ReadQuad(RGBQUAD* RGB, int biSize, char* filename);
    void France_flag(char* filename);
 
    BMP read_BMP_info(char* filename);
    
    
    friend struct BitMapHeader;
    friend struct BitMapInfoHeader;
    friend struct RGBQUAD;
    ~BMP();
    
    
};
Файл описания методов

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "StdAfx.h"
#include "BMP.h"
 
 
BMP::BMP()
{
}
 
 
void BMP::ReadQuad(tagRGBQUAD* RGB, int biSize, char* filename)
{
    fstream f(filename, ios::binary | ios::out | ios::in | ios::ate);
    f.seekg(biSize, SEEK_SET);
    f.read((char*)& RGB, 1024);
    f.close();
}
BMP BMP::read_BMP_info(char* filename)
{
    BMP h;
    fstream f(filename,ios::binary | ios::out | ios::in | ios::ate);
    f.seekg(0, ios::beg);
    f.read((char*)& h.bh,sizeof(bh));
    f.read((char*)& h.bih,sizeof(bih));
    h.ReadQuad(RGBQuad, h.bih.biSize + 14, filename);
    f.close();
    return h;
}
void BMP::France_flag(char* filename)
{
    BMP h;
    fstream f(filename, ios::binary | ios::out | ios::in | ios::ate);
    h.read_BMP_info(filename);
    f.seekg(h.bh.bfOffbits + 14, ios::beg);
    int n = h.bih.biHeight / 3;
    int m = h.bih.biWidth;
    tagRGBQUAD* part1 = new tagRGBQUAD [n * m] ;
    tagRGBQUAD* part2 = new tagRGBQUAD [n * m];
    tagRGBQUAD* part3 = new tagRGBQUAD [n * m];
    for(int i = 0; i < n * m; i ++)
    {
        part1[i].rgbBlue = 255;
        part2[i].rgbBlue = 255;
        part3[i].rgbBlue = 0;
        part1[i].rgbGreen = 255;
        part2[i].rgbGreen = 0;
        part3[i].rgbGreen = 0;
        part1[i].rgbRed = 255;
        part2[i].rgbRed = 0;
        part1[i].rgbRed = 255;
    }
    f.seekg(h.bh.bfOffbits + 14, ios::beg);
    f.write((char*)& part1, sizeof(part1));
    f.write((char*)& part2, sizeof(part2));
    f.write((char*)& part3, sizeof(part3));
    f.close();
    
    
}
BMP::~BMP()
{
}
И файл описания структур для BMP файлов:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
typedef unsigned short int word; 
typedef unsigned int dword;
#pragma pack(push)
#pragma pack(1)
 
struct BitMapHeader
{
word bfType; 
dword bfSize; 
word bfReserved1;  
word bfReserved2;  
dword bfOffbits; 
};
 
struct BitMapInfoHeader
{
dword biSize ; 
dword biWidth;
dword biHeight; 
word biPlanes;
word biBitCount;  
dword biCompression; 
dword biSizeImage; 
dword biXPelPerMeter; 
dword biYPelPerMeter;  
dword biClrUsed;  
dword biClrImportant;
};
typedef unsigned char BYTE;
 
#pragma pack(pop)
 
struct RGBQUAD {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
};
Это класс для работы с BMP файлами и методом для рисования французского флага

Добавлено через 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).
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru