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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Flamе
9 / 9 / 0
Регистрация: 25.10.2009
Сообщений: 152
#1

SEHException не обработано - C++

19.05.2012, 13:37. Просмотров 549. Ответов 4
Метки нет (Все метки)

Всем привет!

Первый раз сталкиваюсь с такой ошибкой "SEHException не обработано".
она ругается на строки такого вида
C++
1
double *a=new double[n]
подскажите пожалуйста, чем это может быть вызвано.

Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2012, 13:37     SEHException не обработано
Посмотрите здесь:

Почему кидает SEHException? - C++
Здравствуйте! Ситуация такова: есть клас DCEL (рёберный список с двойной связностью). В нём два public метода: EdgesForVertex - возвращает...

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

Необработанное исключение типа system.runtime.interopservices.SEHException - C++/CLI WinForms
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { System::String^ temp =...

.NET 4.x ThreadAbortException не обработано - C#
Здравствуйте. Возникла такая проблема. В отдельном потоке Thread создаётся и открывается форма. В форме есть кнопка, которая завершает...

Nullreferenceexception не обработано - C#
Имею такой вот код: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using...

ArgumentException не обработано - C#
Привет всем! Столкнулся с проблемой при добавлении рисунка в picturebox. OpenFileDialog dialog = new OpenFileDialog(); ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
19.05.2012, 13:58     SEHException не обработано #2
Слишком большое n, не?
Хотя этот оператор не должен вызывать структурных исключений, просто std::bad_alloc должно быть.
Целиком код давай, в общем.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
19.05.2012, 14:00     SEHException не обработано #3
возможно HEAP был поврежден и теперь будут выскакивать не обрабатываемые исключения на любой new/delete/malloc/free
Flamе
9 / 9 / 0
Регистрация: 25.10.2009
Сообщений: 152
19.05.2012, 14:46  [ТС]     SEHException не обработано #4
вобщем у меня всё это было из-за вызова функции
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
double* hanning(int n)
    {
        double *w;
        double half;
        if (!n%2)
        {
            half=n/2;
            w=calc_hanning(half, n);
            int j=1;
            for (int i=half; i<n; i++)
            {
                w[i]=w[(int)n-j];
                j++;
            }
        }
        else
        {
            half=(n+1)/2;
            w=calc_hanning(half, n);
            int j=1;
            for (int i=half; i<n; i++)
            {
                w[(int)n-j]=w[i];
                j++;
            }
        }
        return w;
    }
 
double *calc_hanning(double m, double n)
    {
    
        double *w=new double[(int)m];
        for (int i=1; i<=m; i++)
        {
            w[i]=5*(1-cos(2*3.14*i))/(n+1);
        }
        return w;
    }
потом я в функции hanning выделила память под double *w b вместо вызова функции calc_hanning написала код этой функции
C++
1
2
3
4
for (int i=1; i<=m; i++)
    {
        w[i]=5*(1-cos(2*3.14*i))/(n+1);
    }
и ошибка пропала)
видимо да, всё было из-за неправильной работы с указателями.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2012, 15:30     SEHException не обработано
Еще ссылки по теме:

Не обработано StackOverflowException - C#
Помогите разобраться! Есть библиотека и две формы. В библиотеке есть метод delta_T() public double delta_T() { ...

Ошибка TargetInvocationException не обработано - C#
Парни вот фрагмент когда, из-за чего может быть ошибка? if (k == 5)//Полигон { ...

Ошибка formatexception не обработано - C#
Добрый день. Пишу программу для построения графка. Суть: из textBox1 считывает значения x, из textBox - значения y и строит график. С...

SQL exeption не обработано - SQL Server
Что здесь не так?

.NET 4.x Ошибка ArgumentNulException не обработано - C#
Пытаюсь написать калькулятор в командной строке. При попытке отладки вылетает ошибка ArgumentNulException не обработано на строке if...

.NET 4.x COMException не обработано. Ошибка 80040154 - C#
Добрый день, пытаюсь запустить приложение, и получаю ошибку. Раньше все работало нормально, а сейчас вот такая проблема. ...


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

Или воспользуйтесь поиском по форуму:
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
19.05.2012, 15:30     SEHException не обработано #5
Цитата Сообщение от Flamе Посмотреть сообщение
double *w=new double[(int)m]; for (int i=1; i<=m; i++)
У тебя выход за пределы массива и ты этим портила кучу. О чём компилятор и намекал.
Индексация в С++ начинается с нуля, не забывай об этом.
Кроме того, ты не можешь наверняка знать размер массива, т.к. вещественные числа представляются не точно. При некоторых размерах целое число записывается не точно. Например, вместо 4, может быть 3.999999999. После преобразования в int получится 3 и последний элемент не будет обработан.

Добавлено через 41 секунду
Цитата Сообщение от Flamе Посмотреть сообщение
всё было из-за неправильной работы с указателями
А вот с ними всё вроде бы правильно.)
Yandex
Объявления
19.05.2012, 15:30     SEHException не обработано
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru