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

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

Войти
Регистрация
Восстановить пароль
 
ivan92
0 / 0 / 1
Регистрация: 30.01.2013
Сообщений: 188
#1

Не могу понять 2 строки кода функции из методички - C++

07.07.2013, 22:11. Просмотров 407. Ответов 3
Метки нет (Все метки)

Это код добавления элемента в линейный двунаправленный список. Не пойму 12 и 13 строки. Указатель pCurrent->next(указатель на след. элемент списка) всегда будет пустовать, т.к. в конце функции pCurrent=pAdd, а а в строке 13 указателю pAdd->next присваивается pCurrent->next, который так и не заполнился каким-либо адресом. Извините за много букв, надеюсь, понятно объяснил свое непонимание.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void add_line_double(dataType data, element *pCurrent)
{
  element *pAdd=new element;
  pAdd->info=data;
  if(!pHead)
  {
    pAdd->next=pAdd->previous=NULL;
    pHead=pAdd;
  }
  else
  {
    if(pCurrent->next) pCurrent->next->previous=pAdd;
    pAdd->next=pCurrent->next;
    pCurrent->next=pAdd;
    pAdd->previous=pCurrent;
  }
  pCurrent=pAdd;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2013, 22:11     Не могу понять 2 строки кода функции из методички
Посмотрите здесь:

не могу понять описание, требуеться пояснение кода - C++
суть такая нашел статью по этому адресу, суть создания dll в с++. Вот ссылка: http://www.hardline.ru/1/5/1534/ когда стал изучать все...

Не могу понять смысл данного задания, и написание его кода - C++
В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные — в конец с сохранением порядка следования....

строки в С++.. не могу их понять.. - C++
задание такое преобразовать строку, содержащую выражение на Си с операциями (= , == , != , а+= , а-=), в строку содержащую эти же...

функции,не могу понять ошибку - C++
// 432424.cpp.cpp : Defines the entry point for the console application. // #include "stdio.h" #include "stdafx.h" #include...

Не могу понять условие в функции - C++
Здравствуйте. Пример из книги. Подскажите, пожалуйста, зачем мы определяем переменную ret размером строки, а потом в условии...

Вывод строки. Не могу понять, в чем дело - C++
Добрый вечер. В программе на вход подается строка типа "слово1-слово2", содержащаяся в переменной str. Я слово 1 помещаю в переменную...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zer0mail
2330 / 1956 / 192
Регистрация: 03.07.2012
Сообщений: 7,013
Записей в блоге: 1
07.07.2013, 22:37     Не могу понять 2 строки кода функции из методички #2
Нарисуй хотя бы три элемента двусвязного списка и "вклинься" в середину (после pCurrent).
А pCurrent=pAdd; вообще пустышка, т.к. pCurrent - значение указателя из стека параметров, поэтому при выходе из процедуры он пропадет.
ivan92
0 / 0 / 1
Регистрация: 30.01.2013
Сообщений: 188
07.07.2013, 22:48  [ТС]     Не могу понять 2 строки кода функции из методички #3
Цитата Сообщение от zer0mail Посмотреть сообщение
Нарисуй хотя бы три элемента двусвязного списка и "вклинься" в середину (после pCurrent).
А pCurrent=pAdd; вообще пустышка, т.к. pCurrent - значение указателя из стека параметров, поэтому при выходе из процедуры он пропадет.
Рисовал уже, аж 4 элемента) А по поводу пустышки не знаю, что сказать, т.к. в методичке pCurrent - это и глобальная переменная тоже, так что тут по идее должно быть вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void add_line_double(dataType data)
{
  element *pAdd=new element;
  pAdd->info=data;
  if(!pHead)
  {
    pAdd->next=pAdd->previous=NULL;
    pHead=pAdd;
  }
  else
  {
    if(pCurrent->next) pCurrent->next->previous=pAdd;
    pAdd->next=pCurrent->next;
    pCurrent->next=pAdd;
    pAdd->previous=pCurrent;
  }
  pCurrent=pAdd;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2013, 22:56     Не могу понять 2 строки кода функции из методички
Еще ссылки по теме:

Строки в С++, не могу понять что неправильно в программе - C++
Необходимо: 1) Найти количество слов в строке, 2) вывестии все слова в порядке возрастания длинн, 3) вычислить количество одинаковых...

Не могу понять, почему ввод строк начинается со 2-ой строки - C++
не могу понять, почему ввод строк начинается со 2-ой строки #include <iostream> #include<stdio.h> #include<stdlib.h> ...

Строки (массив char), указатели. Не могу понять логику! Help! - C++
Вообщем проблема в том что выводятся лишние символы в строках.. хотя в них есть признак окончания строк - нулевой байт я новичок в С...

Вызов перегруженной функции не могу понять в чем дело? - C++
#include <iostream> #include <time.h> #include <stdio.h> using namespace std; //Прототипы функций bool LeapYear(int Year); ...

Не могу понять для чего третья переменная в параметрах функции - C++
int binpow (int a, int n) вот это понимаю, а вот этот не могу понять, что означает переменная b? unsigned int binpow(unsigned int a,...

Стек на основе массива структур - эт как понять читаю литературу и не могу понять! - C++
Стек статически (на основе массива структур). Пример структура "Товар" которая включает в себя: № по каталогу(ключ), Название, цена, срок...


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

Или воспользуйтесь поиском по форуму:
zer0mail
2330 / 1956 / 192
Регистрация: 03.07.2012
Сообщений: 7,013
Записей в блоге: 1
07.07.2013, 22:56     Не могу понять 2 строки кода функции из методички #4
Это правильный вариант, хотя такое использование глобальных переменных не есть гуд. Лучше бы функции передавали, после кого вставить, а она бы возвращала указатель на новый элемент.
Yandex
Объявления
07.07.2013, 22:56     Не могу понять 2 строки кода функции из методички
Ответ Создать тему
Опции темы

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