Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Не понятная ошибка Доброго времени суток...))) С++ изучаю второй день, прошу строго не ругать если моя проблема является элементарной, но тем не менее всю ночь просидел в Google и не нашел проблемы. Проблема в коде: #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <stdio.h> int main(int argc, char *argv) { char str; https://www.cyberforum.ru/ cpp-beginners/ thread881676.html Преобразовать текст, заменяя каждое вхождение слова "это" на слово "то" C++
Преобразовать текст, заменяя каждое вхождение слова "это" на слово "то". Как ни бьюсь, но обработка строк мне почему-то не дается, а сдавать завтра. Помогите, плиз!
C++ Данные из одного стека записать в другой в обратном порядке доброго времени суток! помогите решить задачу по С++. я создал стек, забил значениям... но как при помощи указателей записать все элементы в другой стек, да еще и в обратном порядке - без понятия... помогите, пожалуйста https://www.cyberforum.ru/ cpp-beginners/ thread881646.html C++ Идеально сбалансированное дерево https://www.cyberforum.ru/ cpp-beginners/ thread881639.html
Здравствуйте, помогите пожалуйста с задачкой, очень нужно... Из входного потока (терминала или файла) поступает текст, состоящий из слов, которые разделены пробелами. Между словами может быть более одного пробела. Разобрать текст по словам или по символам (в зависимости от условия), упорядочив его путем сортировки двоичным деревом. Под символами в данном случае подразумеваются лишь те,...
C++ Реализовать классы геометрических абстракций: прямоугольник, квадрат
Реализовать классы геометрических абстракций: прямоугольник, квадрат (разрешается использование других классов, помимо перечисленных). Никакой работы с графической подсистемой выполнять не нужно, вся работа программы заключается в математическом представлении фигуры. Над ними должны быть доступны операции: сериализация в строку (т.е. вывод координат в строковый буфер-строку), десериализация из...
C++ Вектор объектов разных классов. Доступ к свойствам элемента вектора https://www.cyberforum.ru/ cpp-beginners/ thread881633.html
есть базовый класс class A { //... } есть производные классы class A1 : public A { //... public:
C++ Кто умеет строить блок схемы? Написал программу в с++ и не могу построить блок схему...нужно для курсовой... помогите кому не сложно...программа в общем строит последовательность из рекурентного соотношени и делает для первых пяти чисел всевозможные перестановки #include <iostream> #include <algorithm> float ai(int i) // рекурсивная функция вычисления а; { if (i==0) return 2; else if (i==1) return 3; ... https://www.cyberforum.ru/ cpp-beginners/ thread881606.html C++ Библиотека Barfic
Насколько я понял это библиотека отвечает за псевдографику в консоли. Где её можно взять? А то гугл молчит по этому вопросу.
C++ Запись в файл из вектора ofstream outfile("ITER.txt"); ostream_iterator<int> Co(outfile," "); copy(v1.begin(),v1.end(),Co); Есть вектор заполненый значениями <int> - v1 надо закинуть инфу из вектора в файл... файл создается но туда не попадает инфа из вектора v1. в Чем проблема? https://www.cyberforum.ru/ cpp-beginners/ thread881600.html C++ Перечисление значений. Ease на примере InQuad https://www.cyberforum.ru/ cpp-beginners/ thread881589.html
В общем суть такая, например у меня есть: float time = 1.5f; //Время за которое должна произойти функция int value_from = 1000; //Значение откуда int temp_value_from = value_from; //Пригодится в конце int value_to = 0; //значение куда int amount = 19; // надо оно или нет, но допустим это количество операций, за которое должно все произойти. Можно и другое число. float delay; //задержка Я...
C++ Как сделать, чтобы в формуле не выскакивало число, а получалось выражение?
Мне нужно, чтобы в l0 не считалось полностью число, а получалась формула. Ведь я ввела "char X_arg_const" как переменную и мне нужно, чтобы при введенных значениях Х получалось выражение с одной переменной X_arg_const. Это нужно, чтобы при остальных l (l1, l2, l3) потом составить многочлен. Помогите, пожалуйста. А то я не понимаю, как тут вообще считается число, если X_arg_const даже не задан....
C++ Найти повторяющиеся строки (от 2-х и больше) и сообщить их кол-во Друзья, помогите мне пожалуйста закончить программу. 1) От программы нужно чтобы он открывал текстовый файл (в котором находятся несколько строк на английском языке). Подсчитал их количество. 2) Сравнил каждую строку. 3) И найти повторяющиеся строки (от 2-х и больше) и сообщить их количество #include <stdio.h> #include <alloc.h> #include <string.h> int strcmp(char *str1, char *str2); ... https://www.cyberforum.ru/ cpp-beginners/ thread881584.html
0 / 0 / 1
Регистрация: 01.02.2012
Сообщений: 11
0

Почему кидает SEHException? - C++ - Ответ 4628443

28.05.2013, 10:29. Показов 626. Ответов 1
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Ситуация такова: есть клас DCEL (рёберный список с двойной связностью). В нём два public метода: EdgesForVertex - возвращает список указателей на рёбра, смежные c данной вершиной; EdgesForFaces - возвращает список указателей на рёбра, ограничивающие данную грань.

По структуре оба метода одинаковы, но EdgesForVertex работает как положено, а EdgesForFaces кидает тот самый SEHException.

С обработкой исключений на с++ не очень знаком, от того ещё тяжелее разобраться, что к чему.

Использую VS2010.

Привожу код класа DCEL:

DCEL.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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//Double connected edge list
 
#pragma  once
#ifndef DCEL_H
#define DCEL_H
 
#include <vector>
#include <list>
using namespace std;
 
namespace EDM 
{ 
    namespace Model 
    { 
        namespace TriangulationMethod
        {
            class TriangActor;
        }
    }
    namespace EDM_Graphics
    {
        class Point2F;
    }
}
 
using namespace EDM::EDM_Graphics;
using namespace EDM::Model::TriangulationMethod;
 
namespace EDM {namespace Logic { namespace Voronoi 
{
    class EdgeNode;
    typedef vector<EdgeNode> DCEL_EdgesT;
 
    class DCEL
    {
    public:
 
        DCEL_EdgesT edges;
 
        DCEL(size_t size);
        ~DCEL();
 
        // Returns the list of pointers to adj edges enumerated in counterclockwise direction for vertex.
        list<EdgeNode*> EdgesForVertex(const Point2F &vertex);
 
        // Returns the list of pointers to adj edges enumerated in clockwise direction for face.
        list<EdgeNode*> EdgesForFaces(const TriangActor &face);
 
    private:
        EdgeNode* FirstCCWEdgeForVertex(const Point2F &vertex);
        EdgeNode* NextCCWEdgeForVertex(const Point2F &vertex, EdgeNode *nextEdge);
 
        EdgeNode* FirstCWEdgeForFace(const TriangActor &face);
        EdgeNode* NextCWEdgeForFace(const TriangActor &face, EdgeNode *nextEdge);
    };
 
}}}
 
#endif
DCEL.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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include "Point2F.h"
#include "TriangActor.h"
#include "EdgeNode.h"
#include "DCEL.h"
 
using namespace EDM::EDM_Graphics;
using namespace EDM::Model::TriangulationMethod;
using namespace EDM::Logic::Voronoi;
 
DCEL::DCEL(size_t size)
{
    edges.reserve(size);
}
 
DCEL::~DCEL()
{
    /*for (DCEL_EdgesT::iterator edgeIter = edges.begin(); edgeIter != edges.end(); edgeIter++)
    {
        delete *edgeIter;
    }*/
    edges.clear();
}
 
list<EdgeNode*> DCEL::EdgesForVertex(const Point2F &vertex)
{
    EdgeNode *nextEdge = FirstCCWEdgeForVertex(vertex);
    
    if (!nextEdge)
    {
        //TODO: throw correct exception
        throw -1;
    }
    
    EdgeNode *startEdge = nextEdge;
    list<EdgeNode*> adjEdges = list<EdgeNode*>();
    adjEdges.push_back(nextEdge);
 
    nextEdge = NextCCWEdgeForVertex(vertex, nextEdge);
 
    while(*nextEdge != *startEdge)
    {
        adjEdges.push_back(nextEdge);
        nextEdge = NextCCWEdgeForVertex(vertex, nextEdge);
    }
 
    return adjEdges;
}
 
EdgeNode* DCEL::FirstCCWEdgeForVertex(const Point2F &vertex)
{
    for (size_t edgeCntr = 0; edgeCntr < edges.size() ; edgeCntr++)
    {
        if ((*(edges[edgeCntr].vBegin) == vertex) || (*(edges[edgeCntr].vEnd) == vertex))
        {
            return &(edges[edgeCntr]);
        }
    }
    return nullptr;
}
 
EdgeNode* DCEL::NextCCWEdgeForVertex(const Point2F &vertex, EdgeNode *nextEdge)
{
    if (*(nextEdge->vBegin) == vertex)
    {
        return nextEdge->p1;
    }
    else
    {
        return nextEdge->p2;
    }
}
 
list<EdgeNode *> DCEL::EdgesForFaces(const TriangActor &face)
{
    EdgeNode *nextEdge = FirstCWEdgeForFace(face);
 
    if (!nextEdge)
    {
        //TODO: throw correct exception
        throw -1;
    }
 
    EdgeNode *startEdge = nextEdge;
    
        //////////////////////////////////////////////////////////////////////////
    //SEHExeption при создании списка
    list<int> intlist;        
    intlist.push_back(1);
    intlist.push_back(2);
    intlist.push_back(3);
    intlist.push_back(4);
 
        //////////////////////////////////////////////////////////////////////////
    //та же ошибка
    list<EdgeNode *> adjEdges;
    adjEdges.push_back(nextEdge);
 
    nextEdge = NextCWEdgeForFace(face, nextEdge);
 
    while(*nextEdge != *startEdge)
    {
        adjEdges.push_back(nextEdge);
        nextEdge = NextCWEdgeForFace(face, nextEdge);
    }
 
    return adjEdges;
}
 
EdgeNode* DCEL::FirstCWEdgeForFace(const TriangActor &face)
{
    for (size_t edgeCntr = 0; edgeCntr < edges.size() ; edgeCntr++)
    {
        if ((*(edges[edgeCntr].fLeft) == face) || (*(edges[edgeCntr].fRight) == face))
        {
            return &(edges[edgeCntr]);
        }
    }
    return nullptr;
}
 
EdgeNode* DCEL::NextCWEdgeForFace(const TriangActor &face, EdgeNode *nextEdge)
{
    if (*(nextEdge->fLeft) == face)
    {
        return nextEdge->p1;
    }
    else
    {
        return nextEdge->p2;
    }
}
Ошибка вылетает в методе EdgesForFaces, когда пытаюсь создать список adjEdges. Для интереса попробовал просто заполнить интовский список, так ошибка стала появляться и в строке
C++
1
list<int> intlist;
Хотя, повторюсь, в схожем методе EdgesForVertex, список рёбер заполнился, как я хотел.

Если надо, выложу другие части кода.

Вернуться к обсуждению:
Почему кидает SEHException? C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2013, 10:29
Готовые ответы и решения:

SEHException не обработано
Всем привет! Первый раз сталкиваюсь с такой ошибкой &quot;SEHException не обработано&quot;. она ругается...

SEHException при заполнении вектора
тут такое дело... если в кратце, есть вектор summa, заполняю его нулями и вылезает SEHException. Я...

Std::basic_regex кидает bad_cast
На второй строке кидается std::bad_cast, в чем причина? std::basic_string&lt;sf::Uint32&gt; reg =...

VS кидает исключение при повторном освобождении памяти
Здравствуйте! Помогите, пожалуйста, разобраться с программой, никак не могу понять из-за чего...

1
28.05.2013, 10:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2013, 10:29
Помогаю со студенческими работами здесь

Массив элементов класса, деструктор которого кидает исключение
#include &lt;cstdio&gt; class SSS { int x; public: SSS() { } ~SSS() { ...

Конструктор копирования кидает исключение, если копируют объект, созданные дефолтным конструктором
Привет! Вопрос из области философии - наткнулся на такое поведение при работе с IBPP (С++ клиент...

Подскажите пожалуйста почему всё время кидает exception
public class TestJDBC { public static void main(String args) { try { ...

Необработанное исключение типа system.runtime.interopservices.SEHException
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru