Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

09.05.2013, 19:03. Просмотров 237. Ответов 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();
}
0
Миниатюры
Работа со списками ("Нарушение прав доступа записи")  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2013, 19:03
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Работа со списками ("Нарушение прав доступа записи") (C++):

Необработанное исключение в "0x01082855" в "sort.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc" - C++
Всем привет! помогите мне понять в чём дело. написал программу: #include &quot;stdafx.h&quot; #include &lt;ctime&gt; #include &lt;iostream&gt; #include...

Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd" - C++
Вот функция для удаления столбца: #pragma once #include &lt;iostream&gt; using namespace std; int **DeleteIndexCol(int **ar,int s1,int...

Необработанное исключение в "0x54a2d2e9 (msvcr100d.dll)" в "3.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc". - C++
#include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;string&gt; #include&lt;stdlib.h&gt; using namespace std; class Goods { char* name; ...

Необработанное исключение в "0x776315de" в "c++1.exe": 0xC0000005: Нарушение прав доступа при записи "0x40e000 - C++
Здравствуйте. Только начал работать с динамическим массивом, но не могу понять почему появляется эта ошибка. Работаю с библиотекой sfml....

Необработанное исключение в "0x104b2288" в "Matrix.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcd - C++
Вот такая ошибка!

Необработанное исключение: "Нарушение прав доступа при записи" - C++
Подскажите в чём проблемма происходит ошибка при выполнение программы #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; ...

2
anmartex
...
1708 / 1201 / 497
Регистрация: 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);
0
behemoth
44 / 30 / 7
Регистрация: 29.09.2012
Сообщений: 75
Записей в блоге: 1
09.05.2013, 19:55 #3
а где твой конструктор картотеки, и почему не:
C++
1
TKartoteka res = new TKartoteka(/*some params*/);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2013, 19:55
Привет! Вот еще темы с ответами:

Нарушение прав доступа при записи "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...

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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