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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
#1

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

09.05.2013, 19:03. Просмотров 227. Ответов 2
Метки нет (Все метки)

Пишу первый проект по работе с односвязным списком,в программе прописал класс со структурой "список" и методы которые добавляют полезную информацию и выводят её на экран. Я вроде всё там написал,но выдаёт ошибку :"Нарушение прав доступа записи",не могу понять в чём проблема.Вот сам код:
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++
Подскажите в чём проблемма происходит ошибка при выполнение программы #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; ...

Ошибка "Нарушение прав доступа при записи" - C++
Похоже я полный неудачник по программированию, так как даже элементарные программы у меня отказываются работать с выводом ошибки &quot;Нарушение...

Нарушение прав доступа при записи "0x0000000c" - C++
12.cpp // 12.cpp : Defines the entry point for the console application. // #include &quot;stdafx.h&quot; #include &lt;stdlib.h&gt; #include...

Нарушение прав доступа при записи "0x00000000" - C++
Как я понимаю ошибка где-то в указателях. Но вот что неправильно, мне непонятно. class CAR { private: char *prod; //...

Нарушение прав доступа при записи "0xabababab" - C++
Доброго времени суток начал прогу писать и тут меня компилятор удивил вот такой фигнёй : Необработанное исключение в &quot;0x773d15de&quot; в...

0xC0000005: Нарушение прав доступа при записи "0xcccccccc". Инициализация строк - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include &lt;stdio.h&gt; using namespace std; class Stroka {char*...

Работа с динамическими списками - Нарушение прав доступа при чтении - C++
При работе программы возникает ошибка: Необработанное исключение в &quot;0x004023cd&quot; в &quot;lab1_.exe&quot;: 0xC0000005: Нарушение прав доступа при...

Необработанное исключение: "Нарушение прав доступа при чтении" - C++
При выполнении тестов {input...output} появляется необработанное исключение по адресу 0x009577E1 в 1590.exe: 0xC0000005: нарушение прав...

"Нарушение прав доступа при чтении по адресу 0x00000000" - C++
код: #define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt; #include &lt;math.h&gt; int strtoint(char *s) { int temp = 0; int i = 0; ...

Найти ошибку "Нарушение прав доступа при чтении" - C++
Необработанное исключение в &quot;0x504407bf (msvcr100d.dll)&quot; в &quot;lab5.exe&quot;: 0xC0000005: Нарушение прав доступа при чтении &quot;0x00000064&quot; int...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
1701 / 1194 / 495
Регистрация: 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
44 / 30 / 7
Регистрация: 29.09.2012
Сообщений: 75
Записей в блоге: 1
09.05.2013, 19:55     Работа со списками ("Нарушение прав доступа записи") #3
а где твой конструктор картотеки, и почему не:
C++
1
TKartoteka res = new TKartoteka(/*some params*/);
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru