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

Исключение Нарушение прав доступа при чтении - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перенести первые K букв слова в его конец http://www.cyberforum.ru/cpp-beginners/thread1155028.html
Дано слово. Перенести первые K его букв в конец Хорошо бы с циклом и без цикла
C++ Вывести из файла определённую запись, и добавить запись в середину файла скопировав его в обратном порядке #include <iostream> #include <string> #include <fstream> #include <locale.h> using namespace std; class name { private: string _name; http://www.cyberforum.ru/cpp-beginners/thread1155023.html
Очистка потока ввода C++
Собственно тема подымалась в интернете, но внятного объяснения я не получил. Для ввода строки с пробелами использую cin.getline() Если ввод первый то нормально работает и печатает что вводит char c; char s; cout.flush(); cout<<"vvesti text <=50\n"; cin.getline(s, 50); cout >>s;
C++ Вывести для указанного города максимальное количество пассажиров, прибывших на разных автобусах
На автовокзале в ЭВМ хранится информация об автобусных рейсах: номер рейса, пункты отправления и назначения, время прибытия и отправления, тип автобуса (ПАЗ, ЛАЗ, ЛиАЗ, Икарус). Для каждого типа автобуса известна его пассажировместимость (она хранится в специальном массиве). Ввести информацию об N рейсах (N выбрать самостоятельно) и вывести для указанного пункта назначения максимальное количество...
C++ Используя класс stack, напишите функцию loadstack http://www.cyberforum.ru/cpp-beginners/thread1154987.html
Используя класс stack, напишите функцию loadstack(), которая бы возвращала стек, заполненный буквами алфавита (a-z). В вызывающей программе присвойте этот стек другому объекту и докажите, что и в этом объекте находится алфавит. (Замечание. Удостоверьтесь, что длина стека достаточна для хранения алфавита.) заранее Спасибо!
C++ Вложенный цикл и списки. Поиск одинаковых MNOZ *per(MNOZ *S1, MNOZ *S2, MNOZ *S3) //Пересечение { MNOZ *cur1=NULL; for(; S1!=NULL; S1->next) for(; S2!=NULL; S2->next) { if(S1->data == S2->data ){ cur1=AddAfterCur(S3, cur1, S1->data); подробнее

Показать сообщение отдельно
eugrita
3 / 4 / 0
Регистрация: 18.11.2009
Сообщений: 406
23.04.2014, 13:06  [ТС]     Исключение Нарушение прав доступа при чтении
Не понял про отсутствие оператора "="
TSymb *smb[3] означала у меня агрегацию по ссылке (символы могут существовать и при уничтожении слова)
вариант TSymb smb[3]; означает агрегацию по значению - композицию. Не важно как это обзывать- лишь для понимания. Если прямо так TSymb smb[3]; то говорит -нет подходящего конструктора
вот сделал такой вариант с вектором (композиция)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class TString//объект «строка»- массив из 15 симв, умеющий выводить на печать зн своих элем 
{ private:   
   char *Ref;
  vector <TSymb> smb; 
  public:
     TString(char *ref);
     ~TString(void) {  delete Ref;}
      void prn();
};
 
TString::TString(char *ref)
{  char c;
    for (int i=0;i<3;i++){
     c=ref[i];
     smb.push_back(TSymb(c));
    }
}
void TString::prn()
{ 
    for(int i=0;i<3;i++)
        smb[i].printCH();
}
теперь хоть печатает, но в конце опять то же исключение по доступу.
Надо видно еще деструкторы делать.

Добавлено через 54 секунды
Не понял про отсутствие оператора "="
TSymb *smb[3] означала у меня агрегацию по ссылке (символы могут существовать и при уничтожении слова)
вариант TSymb smb[3]; означает агрегацию по значению - композицию. Не важно как это обзывать- лишь для понимания. Если прямо так TSymb smb[3]; то говорит -нет подходящего конструктора
вот сделал такой вариант с вектором (композиция)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class TString//объект «строка»- массив из 15 симв, умеющий выводить на печать зн своих элем 
{ private:   
   char *Ref;
  vector <TSymb> smb; 
  public:
     TString(char *ref);
     ~TString(void) {  delete Ref;}
      void prn();
};
 
TString::TString(char *ref)
{  char c;
    for (int i=0;i<3;i++){
     c=ref[i];
     smb.push_back(TSymb(c));
    }
}
void TString::prn()
{ 
    for(int i=0;i<3;i++)
        smb[i].printCH();
}
теперь хоть печатает, но в конце опять то же исключение по доступу.
Надо видно еще деструкторы делать.

Добавлено через 27 минут
Ну все добавил деструктор
C++
1
2
TString::~TString() 
{  smb.clear();}
и перестало валиться
 
Текущее время: 14:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru