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

Необработаное исключение - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ При запуске проги возникает ЭТО http://www.cyberforum.ru/cpp-beginners/thread819675.html
Подскажите из за чего это и как устранить?
C++ Описание метода обнуления поля #include<iostream> #include<cstring> #include<stdlib.h> #include<iomanip> using namespace std; class SalePerson { char *fam, *name; double month; http://www.cyberforum.ru/cpp-beginners/thread819652.html
C++ Определить, можно ли заданное натуральное число представить в виде квадрата какого либо простого числа
:cry:помогите
C++ Тема с перестановками
Помогите пожалуйста найти где можно взять алгоритмы перестановок в двумерном массиве К примру: поменять верхнюю и нижнюю половинцы местам, повернуть массив по часовой стрелке и так далее искал в интернете- нашел только сортировки
C++ Проблемки с открытием файла http://www.cyberforum.ru/cpp-beginners/thread819622.html
Нужно открыть файл, считать из него имена других файлов и затем из этих файлов взять нужные данные. Из первого файла читает названия остальных верно. Но когда пытаюсь создать потоки на файлы, из которых нужно взять данные, то они почему-то не создаются.. Объясните, пожайлуста, почему так происходит, и, если не трудно, как это исправить. #include <iostream> using namespace std; struct data {...
C++ Отсортировать алроритм судоку(5 на 5) за определённое время Понятия не приложу как это осуществить. У меня получается только за неопределённое время при помощи рандомной сортировки: #include <iostream> #include <cstdlib> #include <ctime> #include <algorithm> const int SIZE = 5; const int CHECK = 15; подробнее

Показать сообщение отдельно
roma2341
7 / 7 / 2
Регистрация: 01.11.2012
Сообщений: 55

Необработаное исключение - C++

27.03.2013, 01:21. Просмотров 1401. Ответов 7
Метки (Все метки)

создаю программу, которая будет находить на отрезке 10 точек, находящихся на одинаковом расстоянии одна от другой(но это неважно), с математической частью все впорядке а вот в одном из класов есть проблема, немогу понять где я эту проблему спрятал. Пишет ошибку
Кликните здесь для просмотра всего текста
ервый этап обработки исключения по адресу 0x00872DE9 в mfcCursova.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x00000004.
Необработанное исключение по адресу 0x00872DE9 в mfcCursova.exe: 0xC000041D: Во время обратного вызова пользователя обнаружено необработанное исключение.
Программа "[5644] mfcCursova.exe" завершилась с кодом 0 (0x0).

вот мой код :
mfcCursovaDlg.cpp
Кликните здесь для просмотра всего текста
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
void CmfcCursovaDlg::OnPaint()
{
    if (IsIconic())
    {
        CPaintDC dc(this); // контекст устройства для рисования
 
        SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
 
        // Выравнивание значка по центру клиентского прямоугольника
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);
        CRect rect;
        GetClientRect(&rect);
        int x = (rect.Width() - cxIcon + 1) / 2;
        int y = (rect.Height() - cyIcon + 1) / 2;
 
        // Нарисуйте значок
        dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
        FILE* frMain,*frPoints;
fopen_s(&frMain,"inpMain.txt","r");
fopen_s(&frPoints,"inpPoints.txt","r");
Segment MainCordinate;
    int i=0; 
    //Point points[10];
    int midDelta = 0;int a,b,c,d;
    fscanf_s(frMain,"%d*%d%d*%d",&a,&b,&c,&d);
    MainCordinate.SetX(a),MainCordinate.SetY(b),MainCordinate.SetX2(c),MainCordinate.SetY2(d);
fclose(frMain);
 
MainCordinate.SetLength(sqrt(pow((float)MainCordinate.GetX2()-MainCordinate.GetX(),2)+pow((float)MainCordinate.GetY2()-MainCordinate.GetY(),2)));
MainCordinate.SetPart((float)MainCordinate.GetLength()/9);
Lamana broken1;
while(!feof(frPoints)) 
{
    int x,y,dtY;
    fscanf_s(frPoints,"%d",&dtY);
    x=MainCordinate.GetX() + MainCordinate.GetPart()*i * (MainCordinate.GetX2()-MainCordinate.GetX()) / MainCordinate.GetLength();
        y=MainCordinate.GetY() + MainCordinate.GetPart()*i * (MainCordinate.GetY2()-MainCordinate.GetY()) / MainCordinate.GetLength()+dtY;
        broken1.AddPoint(x,y);
}
        CDialogEx::OnPaint();
    
fclose(frPoints);
    }
}

class.h
Кликните здесь для просмотра всего текста
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
#pragma once
class Point{
    private:
        int x,y,color;
public:
    void SetX(int x);
    void SetY(int y);
    void SetColor(int color);
    int GetX(void);
    int GetY(void);
    int GetColor(void); 
    };
class Segment:public Point{
    private:
    int x2;
    int y2;
    float length;float part;
    public:
    void SetX2(int x2);
    void SetY2(int y2);
    void SetLength(float length);
    void SetPart(float part);
    int GetX2(void);
    int GetY2(void);
    float GetLength(void);
    float GetPart(void);
    };
class Lamana{
private:
    Point *Arr;
public:
    Lamana();
    int pos;
void AddPoint(int x,int y);
};

description.cpp
Кликните здесь для просмотра всего текста
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
62
63
64
65
66
67
68
69
70
71
72
73
74
#include "StdAfx.h"
#include "class.h"
void Point::SetX(int x)
{
    this->x=x;
}
void Point::SetY(int y)
{
    this->y=y;
}
void Point::SetColor(int color)
{
    this->color=color;
}
 
//опис класу точка
    int Point::GetX(void)
    {
        return x;
    }
    int Point::GetY(void)
    {
        return y;
    }
    int Point::GetColor(void)
    {
        return color;
    }
 
    
    //опис класу відрізок
int Segment::GetX2(void)
    {
        return x2;
    }
    int Segment::GetY2(void)
    {
        return y2;
    }
    float Segment::GetPart(void)
    {
        return part;
    }
    float Segment::GetLength(void)
    {
        return length;
    }
 void Segment::SetX2(int x2)
 {
     this->x2=x2;
 }
    void Segment::SetY2(int y2)
    {
        this->y2=y2;
    }
    void Segment::SetLength(float length)
    {
        this->length=length;
    }
    void Segment::SetPart(float part)
    {
        this->part=part;
    }
    
 
void Lamana::AddPoint(int x,int y)
{
Arr[pos].SetX(x);
Arr[pos++].SetY(y);
}
Lamana::Lamana()
{
    pos=0;
}

Прошу прощение , если код плохо читаемый, код точно правельный до того момента, когда вызывается метод AddPoint(x,y); Все что создавалось автоматически визуал студио я не стал вылаживать.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru