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

ошибка в указателе - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция разбиения матрицы на две http://www.cyberforum.ru/cpp-beginners/thread581658.html
Доброго времени суток уважаемые форумчане. Столкнулся с проблемой. Необходимо написать функцию разбиения матрицы на две матрицы, в качестве входных параметров должна быть матрица, а в качестве выходных две матрицы. Сделал программу, но преподаватель забраковал. В общем надо сделать с помощью функции. Вот что у меня получилось: #include "stdafx.h" #include <iostream> #include <vector> using...
C++ Как лучше всего учить язык C++? Хочу начать изучать язык программирования! Остановился на C++, а с чего начать не знаю! http://www.cyberforum.ru/cpp-beginners/thread581626.html
C++ «сортировка фон Неймана/слиянием»
Сортировка слиянием,помогите реализовать программу на языке C++ n1=800 n2=3000 n3=7000
Формула ! C++
Ребят очень срочно нужна помощь у меня такое задание ,сделать так чтобы был вывод на экран по ращением математического примера (тесть я задаю число а оно решается по примерам T1,T2 , и выводит ответ на экран ) я то сделал но постоянно ошибаюсь в скобках , где то не правильно ставлю ( вот сам пример Помогите очень нужно
C++ Блок-схема http://www.cyberforum.ru/cpp-beginners/thread581592.html
Помогите построить блок-схему к этому коду я совсем запуталась ((( for (z=0, x=0, j=0; x<m, j<m; j++, x++) { max=a; for (i=1; i<n; i++) { if (a>max) { max=a; }
C++ Статические члены класса Добрый день. Проходили тему - статические члены класса. Написали программу, вылезает ошибка, помогите побороть пожалуйста. #include "stdafx.h" #include <string.h> class CName{ char sName; public: CName(){ sName='\0'; подробнее

Показать сообщение отдельно
DU
1478 / 1054 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.05.2012, 19:51     ошибка в указателе
обычно лучше весь код выкладывать, а не отдельные куски.
значит попробуй поугадывать:
в строке 21: pg=pbeg;
pbeg указывает на самый первый узел. после выполнения этой строчки
pg тоже бует указывать на этот самый первый узел.
далее идет цикл заполнения списка и в строчке 36 происходит следующее:
pg->next= pt;
вот в этот момент начальный узел начинает ссылаться на последний узел, т.к.
pg и pbeg указывают на один и тот же узел, то эта 36ая строчка эквивалентна
pbeg->next=pt; - т.е. pbeg->next начнет указывать на последний добавленный.

А вообще я бы вам посоветовал реорганизовать код.
чтение данных из файла - это одна функция.
добавление значение в конец списка - это другая.
так будет проще и понятнее.
Вот примерно так:

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
// Вот примерный код:
 
//Тут обратите внимание на то, что узел - это структура из
//данных и указателя на другие узлы. У вас же узел списка - это
//структура в которой и поля данных и указатели на другие узлы.
// такое разделение еще дает возможность читать из файла структуру
// magazine одним вызовом функции, а не по полям,
// т.е. fread(&m,sizeof(magazine),1,f1);, потому что в структуре нет
// паразитных next и prev
struct Node
{
  magazine mag;
  Node* prev;
  Node* next
};
 
magazine readFromFile()
{
  magazine m;
  // тут любым способом макаром читаем из файла
  return m;
};
 
Node* getLastNode()
{
  // тут проходим по списку до конца и возвращаем последний узел.
  // ну или еще откудато его берем. это не важно. главное чтобы
  // функция всегда возвращала последний узел.
  return lastNode;
}
 
void add(const magazine& m)
{
  Node* lastNode = getLastNode();
  Node* newNode = new Node();
  newNode.mag = m;
  lastNode->next = newNode;
  newNode->prev = lastNode;
  newNode->next = 0;
}
 
// ну и тут все это применяем:
const magazine m = readFromFile();
add(m);
 
 
// В таком коде всегда легче разобраться чем в том, что у вас написано.
 
Текущее время: 01:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru