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

ошибка! Access violation at adress"40006880" in module"rtl.bpl" read of adress EAE5... - C++

Восстановить пароль Регистрация
 
Ксюшк@
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 17
04.12.2011, 18:04     ошибка! Access violation at adress"40006880" in module"rtl.bpl" read of adress EAE5... #1
В программе я считываю данные из текстового файла,заношу их в вектор и потом пытаюсь работать с ним.Но любая попытка вывести содержимое этого вектора на экран выбивает ошибку.(ф-ии add,del,show,change)
Сама программа компилируется без ошибок.Подскажите,плиз,в чем корень зла???
Ниже куски кода кода.
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
class db{//класс базы данных
 private:
vector<student>db1;
  public:
  db(){};
  ~db(){};
 void create();
 void razdel(vector<student>lg,int a);
void add();
void del();
 
 void change();
 
};
 
class comision{
  public:
  comision(){};
  ~comision(){};
 vector<student>men;
 vector<student>mark;
 vector<student>kiber;
 vector<student>ep;
 vector<student>meznar;
 vector<student>tpe;
 
 
 void show();
  void clr();
 
 
 
 
 
 
 
 
void db::create()//открываем файл
 {
 
 AnsiString surname,name,lastname;
    int rezult,medal,rate,km,pm,mmes,ep,me,tpe,benefit,original;
    float marks;
    FILE *f;
  f=fopen("data_base.txt","a+");
   vector<student>::iterator  p=db1.begin();
 
        while (feof(f)== 0)
 {
//считывание
        fscanf(f,"%s\t%s\t%s\t%d\t%d\t%d\t%f\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t",
        &surname,&name,&lastname,&rezult,&medal,&rate,&marks,&km,&pm,&mmes,&ep,&me,&tpe,&benefit,&original);
 
 
 
        db1.push_back(student(surname,name,lastname,rezult,medal,rate,marks,km,pm,mmes,ep,me,
        tpe,benefit,original ));\\ записываем в вектор типа student
        p++;
 
  }
 
   fclose(f);
 
  }
 
 
 
void  comision::  show()//вывод на экран.есть 6 условий
 {   AnsiString sn,nm,ln;
   int rez ;
//выводит значения при выполнении первого условия
    if((Form1->RadioButton1->Checked==true)&&(Form1->RadioButton2->Checked==false)
    &&(Form1->RadioButton3->Checked==false)&&(Form1->RadioButton4->Checked==false)
    &&(Form1->RadioButton5->Checked==false)&&(Form1->RadioButton6->Checked==false))
 {
    for(int i=0;i<int(men.size());i++)
 {
    sn=this->men[i].surname;
    nm=this->men[i].name;
    ln=this->men[i].lastname;
    rez=this->men[i].rezult;
    Form1->Memo1->Lines->Add(sn+nm+ln+IntToStr(rez));
 }
 }
//второе условие
 
  if((Form1->RadioButton2->Checked==true)&&(Form1->RadioButton1->Checked==false)
    &&(Form1->RadioButton3->Checked==false)&&(Form1->RadioButton4->Checked==false)
    &&(Form1->RadioButton5->Checked==false)&&(Form1->RadioButton6->Checked==false))
 {
    for(int i=0;i<int(mark.size());i++)
 {
    sn=this->mark[i].surname;
    nm=this->mark[i].name;
    ln=this->mark[i].lastname;
    rez=this->mark[i].rezult;
    Form1->Memo1->Lines->Add(sn+nm+ln+IntToStr(rez));
 }
 }
 
//третье условие
 
  if((Form1->RadioButton3->Checked==true)&&(Form1->RadioButton2->Checked==false)
    &&(Form1->RadioButton1->Checked==false)&&(Form1->RadioButton4->Checked==false)
    &&(Form1->RadioButton5->Checked==false)&&(Form1->RadioButton6->Checked==false))
 {
    for(int i=0;i<int(kiber.size());i++)
 {
    sn=this->kiber[i].surname;
    nm=this->kiber[i].name;
    ln=this->kiber[i].lastname;
    rez=this->kiber[i].rezult;
    Form1->Memo1->Lines->Add(sn+nm+ln+IntToStr(rez));
 }
 }
 ....//дальше аналогичные условия 4-6
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2011, 18:04     ошибка! Access violation at adress"40006880" in module"rtl.bpl" read of adress EAE5...
Посмотрите здесь:

C++ Ошибка Необработанное исключение в "0x001d18f8" в "lr7v2.exe": 0xC0000005: Нарушение прав доступа при чтении "0xcdcdcde9"
Ошибка "Access violation..." при попытке отсортировать структуру из файла быстрым методом C++
access violation at adress 40009720. read of adress C++
Непонятная ошибка "Access violation writing location 0xcdcdcdd5" C++
Как сделать чтобы при нажатии на кнопку "PlayWarcraft" заходил на мой сервер через IP adress C++
C++ Ошибка "Unhandled exception, Access violation writing location"
Ошибка "Access violation writing location" при работе с массивом. C++
C++ Ошибка компилятора: "Access violation writing location"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 14:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru