Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
tst
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 216
1

Unhandled exception

07.12.2015, 03:09. Просмотров 947. Ответов 7
Метки нет (Все метки)

При запуске программы появляется окно с текстом "Unhandled exception at 0x00CD488F in my project.exe: 0xC0000005: Access violation reading location 0x8013FE38" - строка 10. Подскажите, как с этим справиться?

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
//P6-27.CPP - вложенные вызовы функций, возвращающих ссылки
 
#include <iostream> 
#include <locale>
using namespace std;
 
// Функция возводит в куб значение параметра и возвращает его адрес:
double& rcube(double& z)
 
{   z = z * z * z;
    return z;
}
 
// Функция изменяет знак параметра и возвращает его адрес:
double& rinvert(double& d)
 
{
    d = -d;
    return d;
}
 
// Функция возвращает адрес параметра с максимальным значением:
double& rmax(double& x, double y)
{
    return x > y ? x : y;
}
 
// Функция печатает значение параметра и возвращает его адрес:
double& rprint(char* name, double& e)
{
    cout << name << e;
    return e;
}
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    double a = 10.0, b = 8.0;
    rprint("\nrcube (rinvert(rmax(a,b))) = ",
        rcube(rinvert(rmax(a, b)))) = 0.0;
    cout << "\na = " << a << ",\tb = " << b;
    rcube(rinvert(rmax(a, b))) = 0.0;
    cout << "\na = " << a << ",\tb = " << b;
 
    cin.get();
    return 0;
 
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2015, 03:09
Ответы с готовыми решениями:

Выдаёт ошибку "Unhandled exception at 0x00007F exception: std::bad_alloc in memory location"
Добрый день, друзья не могли бы помочь разобраться, почему выдаёт такую ошибку?...

Unhandled exception
Вообщем вот рабочая программа, но в конце вываливается с ошибкой: Unhandled...

Unhandled exception at 0x5014742A
Здравствуйте! Написала &quot;программу&quot; на лабу, вроде бы компилируется нормально, а...

Unhandled exception .. access violation
Вот в этом коде выдает .. подозреваю что связано с вводом .. подскажите что не...

ошибка-an unhandled win32 exception occured
нужна помощь) в общем вылетает такая ошибка в процессе выполнения программы: an...

7
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
07.12.2015, 03:31 2
tst, вообще странно у меня ваш код работает хоть и с варнингами,из за с++11!
Вообще совет лучше не писать методы которые возвращают адрес на объект! Не безопасно это!
1
tst
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 216
07.12.2015, 03:34  [ТС] 3
Спасибо за совет. А как сделать, чтобы отрабатывало без предупреждающего окна?
0
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
07.12.2015, 03:37 4
tst, если хочешь использовать управляющие символы (\t, \n etc) то используй cout
0
tst
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 216
07.12.2015, 03:38  [ТС] 5
Желательно, чтобы исключение было только для данной программы, если так можно сделать

Не очень понимаю, где именно использовать cout?
0
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
07.12.2015, 03:59 6
tst, Все сори туплю!
смотри у тебя
C++
1
2
3
4
5
6
// Функция печатает значение параметра и возвращает его адрес:
double& rprint(char* name, double& e)
{
    cout << name << e;
    return e;
}
в частности и возвращает его адрес:

ты на 41 строчке вызываешь ее и куда она должна деть адрес? тут скорей всего надо переделывай ее в void

Добавлено через 4 минуты
tst, Если честно я бы на твоем месте вообще бы все переписал с помощью cmath

Добавлено через 8 минут
tst, - 1 варнинг
C++
1
2
3
4
5
double& rprint(string name, double& e)
{
    cout << name << e;
    return e;
}
а второй из за того что ты кидаешь адреса на объекты и возвращаешь их же, что бы его убрать тут надо все переписывать!
1
tst
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 216
07.12.2015, 04:01  [ТС] 7
Так почему-то не работает так:
void& rprint(char* name, double& e)
Наверное, где-то еще нужно править?

В данном случае задача состоит в том, чтобы доделать именно этот код минимальным образом
0
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
07.12.2015, 04:27 8
Лучший ответ Сообщение было отмечено tst как решение

Решение

Цитата Сообщение от tst Посмотреть сообщение
код минимальным образом
в cmath
твоя
C++
1
2
3
4
5
6
// Функция возводит в куб значение параметра и возвращает его адрес:
double& rcube(double& z)
 
{   z = z * z * z;
    return z;
}
это pow();

C++
1
2
3
4
5
// Функция возвращает адрес параметра с максимальным значением:
double& rmax(double& x, double y)
{
    return x > y ? x : y;
}
это fmax();
Цитата Сообщение от tst Посмотреть сообщение
void& rprint(char* name, double& e)
естественно не будет работать
C++
1
2
3
4
void rprint(string name, double& e)
{
    cout << name << e;
}
как то так

Добавлено через 14 минут
tst, Уще совет, вот ты по всей программе передаешь ссылки на объекты, это крайне не безопасно с нескольких сторон!
Первое по тексту программы ты просто можешь запороть ссылку и она будет не действительна (о чем собственно и варнинг)
Второе передовая ссылку ты рано или поздно забудешь удалить объект из памяти и получишь утечку онной!
Ну и третье обычные операторы * и & пережиток прошлого если есть необходимость то лучше использовать smart указатели, но я так понял вы их еще не проходили!

Добавлено через 6 минут
tst, все расчеты с твоими функциями можно уместить в одну строчку
C++
1
pow(-1*(fmax(a, b)),3);
1
07.12.2015, 04:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2015, 04:27

Unhandled exception при работе с матрицами
Делал лабораторную работу....и вот уже битых часа 3 сиже немогу понять в чем...

Ошибка Unhandled Exception, Access Violation
Странная проблема, на самом деле.. пишу следующее: #include &lt;fstream.h&gt;...

Ошибка: Unhandled exception ...(Kernel32.dll). вImgScan.ocx
Есть код: #import 'imgscan.ocx' no_namespace .... { ... ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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