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

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

Войти
Регистрация
Восстановить пароль
 
артем271293
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 20
#1

ошибка с указателями - C++

30.04.2012, 13:59. Просмотров 493. Ответов 14
Метки нет (Все метки)

надо создать двусвязный список! во второй строке ошибка, как от неё избавиться?

pt->prev=pg;
pg->next=pt;
pg=pt;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2012, 13:59     ошибка с указателями
Посмотрите здесь:

Ошибка с указателями - C++
Рад снова всех приветствовать. У меня появилась небольшая проблема. Изучаю C++ по книге Р. Лафоре "ООП в C++". Так вот, в принципе, книга...

Ошибка с указателями - C++
Похоже у меня проблема с указателями, но что то я жутко торможу и не соображу как правильно сделать. Как минимум в 44 строке ошибка. ...

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

Непонятная ошибка с указателями - C++
Что можно с ними сделать? Не пойму // узел template<typename T> struct T_Node { T m_value; // значение ...

Ошибка с пустыми указателями - C++
Здравствуйте! Пытаюсь написать простую игру, используя библиотеку SDL. Написал отдельный класс для загрузки текстур, и внёс туда вот...

Знакомство с указателями. Синтаксическая ошибка. - C++
Доброго дня! В качестве учебного пособия использую "С++ для чайников" Тема: первое знакомство с указателями С++, ст.89 //Layout...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1481 / 1057 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
30.04.2012, 14:00     ошибка с указателями #2
криво вопрос сформулирован. непонятно, что вы хотите. если вам нужна вставка, то:
C++
1
2
3
4
5
6
7
8
9
10
11
// перед вставкой было справедливо следующее:
p1->next == p3;
p1->prev == null;
p3->prev == p1;
p3->next == null;
 
// теперь между p1 и p3 хотим вставить p2:
p1->next = p2;
p3->prev = p2;
p2->prev = p1;
p2->next = p3;
артем271293
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 20
30.04.2012, 14:47  [ТС]     ошибка с указателями #3
у меня выдает ошибку во второй строке: нарушение прав доступа. вопрос:почему?
DU
1481 / 1057 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
30.04.2012, 14:48     ошибка с указателями #4
приватные поля значит. нужно чтобы они были public
артем271293
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 20
30.04.2012, 14:59  [ТС]     ошибка с указателями #5
если честно, первый раз слышу такое, что мне сделать?
andy_111
90 / 59 / 2
Регистрация: 03.07.2011
Сообщений: 148
30.04.2012, 15:04     ошибка с указателями #6
Найди определение класса (того класса, тип которого имеют указатели pt и pg) и члены prev и next вынеси в секцию public. Они наверняка сейчас находятся в секции private.
артем271293
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 20
30.04.2012, 15:11  [ТС]     ошибка с указателями #7
ну вот, вроде правильно сделал?! а проблему не решило

C++
1
2
3
4
5
6
7
8
9
10
11
12
struct magazin
{public:
    int nomer;
char nazvanie[100];
char fio[100];
int kol;
double dohod;
magazin *prev,*next;
magazin *pr,*pg,*pt;
}
*pg=NULL,*pr=NULL;
magazin *pt=NULL;
DU
1481 / 1057 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
30.04.2012, 15:15     ошибка с указателями #8
нарушение прав доступа - это Access violation чтоли?
Так и надо говорить что не при компиляции, а при выполнении глюки.
pg - неинициализированный указатель тогда. указыает хз куда. почему так - вам должно быть виднее. по имеющемуся коду никто вам ничего не скажет.
andy_111
90 / 59 / 2
Регистрация: 03.07.2011
Сообщений: 148
30.04.2012, 15:23     ошибка с указателями #9
Да, public тут не при чем. Вы объявляете указатели, а память под них не выделяете.
Вот так например будет правильно
C++
1
magazin *pt=new magazin;
Добавлено через 1 минуту
А public в структуре и не нужен - там по умолчанию все открыто.
артем271293
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 20
30.04.2012, 15:26  [ТС]     ошибка с указателями #10
вот моя структура и функция, помогите, я в отчаянии(

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
struct magazin
{public:
    int nomer;
char nazvanie[100];
char fio[100];
int kol;
double dohod;
magazin *prev,*next;
magazin *pr,*pg,*pt;
}
*pg=NULL,*pr=NULL;
magazin *pt=NULL;
 
void add1(void)
{   pt=new magazin;
    int d;
    
    
    while (true){
    if (pg->next==NULL) break;
    pg=pg->next;
    }
    
 
cout<<"введите номер"<<endl;
cin>>d;
pt->nomer=d;
cout<<"введите доход"<<endl;
cin>>d;
pt->dohod=d;
cout<<"введите название"<<endl;
cin.ignore();
scanf("%s",&pt->nazvanie);
cout<<"введите фио директора"<<endl;
scanf("%s",&pt->fio);
cout<<"введите количество сотрудников"<<endl;
cin>>d;
pt->kol=d;
pt->prev=pg;
pg->next=pt;
pg=pt;
pg->next=NULL;
while(true){if(pg->prev==NULL)break;
pg=pg->prev;}
}
void add(void)
{   while(true)
{int d,b;
char c[20];
cout<<"1-ввод данных,0-выход"<<endl;
cin>>b;
if(b==0)return;
pt=new magazin;
cout<<"введите номер"<<endl;
cin>>d;
pt->nomer=d;
cout<<"введите доход"<<endl;
cin>>d;
pt->dohod=d;
cout<<"введите название"<<endl;
cin.ignore();
scanf("%s",&pt->nazvanie);
cout<<"введите фио директора"<<endl;
scanf("%s",&pt->fio);
cout<<"введите количество сотрудников"<<endl;
cin>>d;
pt->kol=d;
pt->prev=pg;
pg->next=pt;
pg=pt;
}
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
30.04.2012, 15:28     ошибка с указателями #11
Цитата Сообщение от andy_111 Посмотреть сообщение
magazin *pt=new magazin;
не совсем, так как ещё неизвестно будут ли добавляться элементы или нет, поэтому надо эту строку поместить в функцию добавления следующей структуры(т е создание структуры - магазин)
артем271293
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 20
30.04.2012, 15:31  [ТС]     ошибка с указателями #12
в функции add ошибка
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
30.04.2012, 15:37     ошибка с указателями #13
артем271293,
cin>>d;
pt->dohod=d;
это эквивалентно
cin >> pt->dohod;
артем271293
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 20
30.04.2012, 15:42  [ТС]     ошибка с указателями #14
и это как то решит мою проблему?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2012, 15:48     ошибка с указателями
Еще ссылки по теме:

MSVS ошибка setlocale при работе с указателями на массивы - C++
Ниже код, пытаюсь нарисовать умножение матриц. До самого умножения еще не дошел, пока только на заполнении матриц и вывод их на экран....

Работа с указателями - C++
Доброго времени суток! Прошу помощи в решении очень интересной задачи. Перепробовал все свои знания., не получается( Чаще всего...

Работа с указателями - C++
Доброго времени суток, нужна помощь. Данный две задачи, обе работают правильно: Дан целочисленный массив размера N. Преобразовать...

Работа с указателями - C++
Подскажите пожалуйста, зачем написано * Rad_to_deg void show_polar (const polar * pda) { using namespace std; const...


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

Или воспользуйтесь поиском по форуму:
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
30.04.2012, 15:48     ошибка с указателями #15
функция добавления в конец
C++
1
2
3
4
5
6
7
8
9
10
11
12
void addnext(void)
{
*pt=new magazin
//ваше заполнения структуры...
//.....
magazin *temp=this;
while((temp=temp->next))
//нашли последний элемент
temp->next=pt;
pt->prev=temp->this
pt->next=0;
}
Yandex
Объявления
30.04.2012, 15:48     ошибка с указателями
Ответ Создать тему
Опции темы

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