0 / 0 / 0
Регистрация: 15.03.2019
Сообщений: 10
1

Вызвано исключение по адресу 0x501FF6E0 (ucrtbased.dll) в GlebProject.exe: 0xC0000005: нарушение прав доступа при чтении

15.03.2019, 04:18. Показов 47194. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день,подскажите пожалуйста в чем проблема.
Никак не могу понять((
Не судите строго я только начал изучения
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
#include<iostream>
using namespace std;
 
class MyString
{
public:
    MyString()
    {
        this->str = nullptr;
    }
    MyString(const char *str)
    {
        int lenght = strlen(str);
        this->str = new char[lenght + 1];
        for (int i(0); i < lenght; i++)
        {
            this->str[i] = str[i];
        }
        this->str[lenght] = '\0';
    }
    MyString(const MyString &other)
    {
        int lenght = strlen(other.str);
        this->str = new char[lenght + 1];
        for (int i(0); i < lenght; i++)
        {
            this->str[i] = other.str[i];
        }
        this->str[lenght] = '\0';
    }
    ~MyString()
    {
        delete[] str;
    }
 
    MyString &operator=(const MyString &other)
    {
        if (this->str != nullptr)
        {
            delete[] str;
        }
        int lenght = strlen(other.str); остановка происходит в этом месте
        this->str = new char[lenght + 1];
        
        for (int i(0); i < lenght; i++)
        {
            this->str[i] = other.str[i];
        }
        this->str[lenght] = '\0';
 
        return *this;
    }
    MyString& operator+(const MyString &other)
    {
        int thisLenght = strlen(this->str);
        int otherLeght = strlen(other.str);
        MyString newStr;
        newStr.str = new char[thisLenght + otherLeght + 1];
 
        int i = 0;
        for (; i < thisLenght; i++)
        {
            newStr.str[i] = this->str[i];
        }
        for (int j(0); j < otherLeght; j++, i++)
        {
            newStr.str[i] = other.str[i];
        }
 
        newStr.str[thisLenght + otherLeght] = '\0';
        return newStr;
    }
    void Print()
    {
        cout << str << endl;
    }
private:
    char *str;
};
 
int main()
{
    MyString str("C++");
    MyString str2("Test");
    MyString result;
    result = str + str2;
    result.Print();
}
ошибка(Вызвано исключение по адресу 0x501FF6E0 (ucrtbased.dll) в GlebProject.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCCCCCCCC.)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2019, 04:18
Ответы с готовыми решениями:

Вызвано исключение по адресу 0x013C1891 в Jacobi.exe: 0xC0000005: нарушение прав доступа при чтении по адресу
#include &lt;math.h&gt; const double eps = 0.001; ///&lt; желаемая точность /// N - размерность...

Вызвано исключение по адресу 0x01083191 в ConsoleApplication.exe: 0xC0000005: нарушение прав доступа при чтении по адрес
Вызвано исключение по адресу 0x01083191 в ConsoleApplication.exe: 0xC0000005: нарушение прав...

Необработанное исключение по адресу 0x0FF3C6BC (ucrtbased.dll) в lab4.exe: 0xC0000005: нарушение прав доступа при запис
// Дана ведомость абитуриентов. В каждой строке записана фамилия абитуриента, // средний балл...

Вызвано исключение по адресу 0x003F2357 в Лабораторна 15.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x
Что это такое и как это исправить? Вот фрагмент кода где и есть проблема: ... int size = 9;...

7
Фрилансер
3703 / 2075 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
15.03.2019, 04:33 2
А вот такого предупреждения при компиляции не видели?
Код
mystr.cpp:71:16: warning: reference to stack memory associated with local
      variable 'newStr' returned [-Wreturn-stack-address]
        return newStr;
               ^~~~~~
0
0 / 0 / 0
Регистрация: 15.03.2019
Сообщений: 10
15.03.2019, 05:18  [ТС] 3
Не-а((
Вот только ту что я скинул

Добавлено через 3 минуты
Подскажите как это исправить?
Буду очень благодарен(Если возможно,сможете объяснить в чем ошибка?)
0
447 / 333 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
15.03.2019, 05:25 4
Цитата Сообщение от GlebLimon Посмотреть сообщение
Подскажите как это исправить?
Не возвращать ссылку
0
0 / 0 / 0
Регистрация: 15.03.2019
Сообщений: 10
15.03.2019, 05:46  [ТС] 5
Тогда получается результат другой(
0
447 / 333 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
15.03.2019, 05:50 6
Лучший ответ Сообщение было отмечено GlebLimon как решение

Решение

Цитата Сообщение от GlebLimon Посмотреть сообщение
newStr.str[i] = other.str[i];
Ошибку исправьте и все будет как надо
1
0 / 0 / 0
Регистрация: 15.03.2019
Сообщений: 10
15.03.2019, 06:07  [ТС] 7
Спасибо большое,помогло!
А подскажите пожалуйста почему нельзя по ссылке?
0
447 / 333 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
15.03.2019, 06:38 8
GlebLimon, Возврат ссылки на локальную переменную
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2019, 06:38
Помогаю со студенческими работами здесь

Вызвано исключение по адресу 0x01068781 в 2nd.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCCCCCCCC
Доброго времени суток, кто может помочь по вопросу? Постоянно выбивает ошибку. Мне кажется, там еще...

Вызвано исключение по адресу 0x01361A1E в Matrix 1.0.exe: 0xC0000005: нарушение прав доступа при записи
Вызвано исключение по адресу 0x01361A1E в Matrix 1.0.exe: 0xC0000005: нарушение прав доступа при...

Необработанное исключение по адресу 0x001B3371 в XXX.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFDF
Делал консольную змейку и столкнулся вот с такой проблемой. void stena(char **arr) { int y...

Необработанное исключение по адресу 0x00ED4891 в strings.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCCCCCCCC
Программа толком не написан, проверял ранд и возникли проблемы. Ф-ция ранд генерирует одно и тоже...


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

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

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