Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2015, 19:05   #1
nwhta
Форумчанин
 
Регистрация: 30.08.2013
Сообщений: 153
По умолчанию двухсторонние листы

всем привет! имеется такой код, сам писал для понятия, но есть ошибка которую я не вижу, помогите найти плиз
Код:
#include <stdio.h>
typedef struct node
{
    int data;
    struct node *next;
    struct node *prev;
} Node;
void printFunc(Node *head)
{
    Node *mover = head;
    while (mover)
    {
        printf("%d\t", mover->data);
    }
}
Node *createNode()
{
    int num;
    Node *head, *mover, *prev, *next;
    printf("Enter a number of nodes you want\n");
    scanf("%d", &num);
    head = mover = (Node*)malloc(num*sizeof(Node));
    while (num)
    {
        printf("Enter data in Node\n");
        scanf("%d", &mover->data);
        prev = mover->prev;
        mover = mover->next;
        num--;
    }
    return head;
}
void main()
{
    Node *head = NULL;
    head = createNode();
    printFunc(head);
}
больше знаю, лучше сплю)

Последний раз редактировалось Stilet; 19.05.2015 в 19:23.
nwhta вне форума Ответить с цитированием
Старый 19.05.2015, 19:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
while (mover)
Цикл бесконечный. Нет перехода на следующий элемент.
Цитата:
while (num)
Цикл бесполезный - нет создания элемента. У тебя выше malloc() используется. Он должен быть в цикле.
Ну и освобождение списка не вижу. free() нет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.05.2015, 19:37   #3
nwhta
Форумчанин
 
Регистрация: 30.08.2013
Сообщений: 153
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Цикл бесконечный. Нет перехода на следующий элемент.

Цикл бесполезный - нет создания элемента. У тебя выше malloc() используется. Он должен быть в цикле.
Ну и освобождение списка не вижу. free() нет.
простите а mover = mover->next;
разве не переход на следующий элемент?

П.С до фри да, я ещё не дошел увы
больше знаю, лучше сплю)
nwhta вне форума Ответить с цитированием
Старый 19.05.2015, 20:06   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
разве не переход на следующий элемент?
Именно он. И почему-то я не вижу его в цикле функции printFunc()
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.05.2015, 21:53   #5
nwhta
Форумчанин
 
Регистрация: 30.08.2013
Сообщений: 153
По умолчанию

уф, пытался разобраться и совсем запутался, напишите пожалуйста образец.
заранее благодарю!
больше знаю, лучше сплю)
nwhta вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отобразить листы Tanit Microsoft Office Excel 2 14.09.2012 15:15
Книги и листы bobinb Microsoft Office Excel 1 02.12.2010 16:59
Листы ROBERT033 Microsoft Office Excel 10 04.02.2010 12:28
Скрытые листы PapaHedgehog Microsoft Office Excel 1 28.10.2009 17:39
Ссылки на листы Катик7 Microsoft Office Excel 4 11.06.2009 14:31