Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 24.07.2015
Сообщений: 10
1

Ошибка доступа к памяти

29.05.2016, 01:36. Показов 997. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Возникла проблема.
Есть класс СТРОКА.
В нем перегруженные операторы "-" и сравнения.
Вот код.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
DString DString::operator - (const DString &T) {
        double x = atof(istring);
        double y = atof(T.istring);
        double res = x - y;
        char* buf = new char[100];
        sprintf(buf, "%0.10g", res);
        return DString(buf);
}
 
bool DString::operator > (const DString &T) const {
 
        double a = atof(istring), b = atof(T.istring);
        if (a > b) return true;
        else return false;
}
 
bool DString::operator < (const DString &T) const {
        double a = atof(istring), b = atof(T.istring);
        if (a < b) return true;
        else return false;
}
Пробуя использовать это все в main :
C++
1
2
3
4
5
6
7
8
 DString d;
        DString d1("3.4"), d2("3");
        //DString d1("3.4"), d2("2");
        //if (d1>d2) cout<<">";
        //if (d1<d2) cout<<"<";
 
 
        d = d1 - d2;
Получаю ошибку на этой строчке
C++
1
double x = atof(istring);
Дебагер показывает, что значение по указателю istring адекватное.
Но возникает ошибка EAccessViolation
Пробовал и копировать в буфер, и кучу других костылей - не выходит.
В операт. сравнения то же самое

Помогите люди добрые.
Надо курсач сдать ))

Добавлено через 13 минут
П.С. DString - наследник базового класса IString. Указатель istring - поле базов. класса.
А операции перегружены в классе - наследнике

Добавлено через 21 минуту
П.С. 2
Оператор присваивания также перегружен и работает исправно
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2016, 01:36
Ответы с готовыми решениями:

Ошибка доступа к памяти, ошибка компонентов .bpl
Использую в проекте библиотеку bass.dll. И при работе с ней у билдера часто возникают ошибки. Либо...

Телефонная книга. Ошибка доступа к памяти
Всем доброго дня! Есть задача написать телефонную книгу. Поиск в ней осуществляется через...

Ошибка доступа к памяти при работе с потоками
проблема в следующем в оконном приложении( среда разработки C++ Builder XE3) создаю при нажатии...

Ошибка доступа к памяти
При нескольких проходах выдает ошибку доступа к памяти int hod_comp(int count) {...

2
случайный прохожий
3021 / 2045 / 623
Регистрация: 20.07.2013
Сообщений: 5,491
29.05.2016, 03:23 2
Полный код классов, думаю, упростил бы получение помощи.
Или хотя бы код, который воспроизводит ошибку без лишних манипуляций (с воссозданием общего кода).
0
0 / 0 / 0
Регистрация: 24.07.2015
Сообщений: 10
29.05.2016, 03:42  [ТС] 3
Вот проект.
Вложения
Тип файла: zip 1.zip (547.1 Кб, 2 просмотров)
0
29.05.2016, 03:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2016, 03:42
Помогаю со студенческими работами здесь

Ошибка доступа записи памяти
Здравствуйте,возникла проблема с циклом: как только начинается выполнения цикла,то возникает ошибка...

Не вызывается виртуальный деструктор(Ошибка доступа к памяти)
Здравствуйте.Прочитал в одной книге про однокоренную иерархию и решил опробовать. Задача была в...

Ошибка доступа к памяти при выходе из программы
Подскажите почему после завершения работы выдаётся ошибка, что идёт запись данных в память? вроде...

Ошибка "Нарушение доступа для записи" при выделение памяти для поиска детерминанта квадратной матрицы
Добрый день! Делаю простое приложение по поиску детерминанта квадратной матрицы. Чтобы искать...

Ошибка доступа к памяти
Я только учусь работать с Lazarus. Объясните, пожалуйста, причину возникновения и (или) решение...

Ошибка доступа к памяти
Приветствую В проге на онкрит ставлю: if paramstr(1)='someparam' then begin...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru