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

Работа со списками ("Нарушение прав доступа записи") - C++

Восстановить пароль Регистрация
 
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
09.05.2013, 19:03     Работа со списками ("Нарушение прав доступа записи") #1
Пишу первый проект по работе с односвязным списком,в программе прописал класс со структурой "список" и методы которые добавляют полезную информацию и выводят её на экран. Я вроде всё там написал,но выдаёт ошибку :"Нарушение прав доступа записи",не могу понять в чём проблема.Вот сам код:
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
TKartoteka.h
 
#pragma once
#include "string.h"
class TKartoteka
{
private:
    struct ListItem
    {
char pType[30];
char pFirma[30];
char pDate[30];
bool CD;
int kass;
bool priem;
double price;
short num;
ListItem* next;
ListItem(char* pType,char* pFirma,char* pDate,bool CD,int kass,bool priem,double price,short num,ListItem* n=NULL)
{
    CD=CD;
    kass=kass;
    price=price;
    priem=priem;
    strcpy(pType,pType);
    strcpy(pDate,pDate);
    strcpy(pFirma,pFirma);
    num=num;
    next=n;
}
    };
    ListItem* pStart;
    ListItem* pEnd;
public:
    
    /*ListItem* find(short num);
    void InputEl(char* pType,char* pFirma,char* pDate,bool CD,int kass,bool priem,double price,short num);*/
    void AddLast(char* pType,char* pFirma,char* pDate,bool CD,int kass,bool priem,double price,short num);
    //bool DeleteEl(short num);
    void PrintEl();
    //void PrintOnPrinter();
    ~TKartoteka();
    TKartoteka(){pStart=NULL; pEnd=NULL;}
};
 
TKartoteka.cpp
 
#include "StdAfx.h"
#include "string.h"
#include "TKartoteka.h"
#include "iostream"
using namespace std;
 
 
void TKartoteka::AddLast(char* pType,char* pFirma,char* pDate,bool CD,int kass,bool priem,double price,short num)
{
    ListItem *newItem=new ListItem(pType,pFirma,pDate,CD, kass, priem, price,num);
    if (!pStart)
    {
        pStart=newItem;
        pEnd=newItem;
    }
    else
    {
        pEnd->next=newItem;
        pEnd=newItem;
    }
}
    TKartoteka::ListItem* TKartoteka::find(short num)
    {
        ListItem* ptr=pStart;
        while(ptr)
        {
            if (ptr->num==num)
                return ptr;
            ptr=ptr->next;
        }
        return NULL;
    }
    
 
    void TKartoteka::PrintEl()
    {
        ListItem* ptr=pStart;
        while(ptr)
        {
            cout<<ptr->kass<<" "<<ptr->CD<<" "<<ptr->pFirma<<"\n";
            ptr=ptr->next;
        }
    }
    TKartoteka::~TKartoteka()
    {
        ListItem* ptr=NULL;
        ListItem* next=pStart;
        while (next)
        {
            ptr=next;
            next=next->next;
            delete ptr;
        }
    }
    
LIST.cpp
 
 
#include "stdafx.h"
#include "TKartoteka.h"
#include "conio.h"
 
void main()
{
    TKartoteka res;
    res.AddLast("cbv","ujhg","zritg",1,23,0,123.7,1);   
    res.PrintEl();
    getch();
}
Миниатюры
Работа со списками ("Нарушение прав доступа записи")  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2013, 19:03     Работа со списками ("Нарушение прав доступа записи")
Посмотрите здесь:

C++ Нарушение прав доступа при записи "0x00000000"
"Нарушение прав доступа при чтении "0x00000000"" C++
C++ Нарушение прав доступа при записи "0xabababab"
C++ Необработанное исключение в "0x776315de" в "c++1.exe": 0xC0000005: Нарушение прав доступа при записи "0x40e000
Возникает ошибка "0xC0000005: Нарушение прав доступа при чтении "0xfeeefee2"." C++
Перегрузка оператора "++" и "--" в чем может быть причина нарушение прав доступа? C++
C++ Необработанное исключение в "0x104b2288" в "Matrix.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcd
C++ С++ ошибка 0xC0000005: Нарушение прав доступа при записи "0xcccccccc". Инициализация строк

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
09.05.2013, 19:54     Работа со списками ("Нарушение прав доступа записи") #2
SKS-65, строки 26,27,28 вы копируете по сути константные строки в них же. У первых аргументов везде поставьте this->, т.е. так:
C++
1
2
3
            strcpy(this->pType, pType);
            strcpy(this->pDate, pDate);
            strcpy(this->pFirma, pFirma);
behemoth
 Аватар для behemoth
44 / 30 / 7
Регистрация: 29.09.2012
Сообщений: 75
Записей в блоге: 1
09.05.2013, 19:55     Работа со списками ("Нарушение прав доступа записи") #3
а где твой конструктор картотеки, и почему не:
C++
1
TKartoteka res = new TKartoteka(/*some params*/);
Yandex
Объявления
09.05.2013, 19:55     Работа со списками ("Нарушение прав доступа записи")
Ответ Создать тему
Опции темы

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