Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 27.02.2020
Сообщений: 2
1

Никак не могу разобраться со списками в Си

27.02.2020, 03:44. Показов 336. Ответов 1

Author24 — интернет-сервис помощи студентам
Всем привет, недавно столкнулся со списками и не понимаю несколько моментов. Вот пример функции, которую я не понимаю. Я нашёл её на сайте с теорией, насколько я понял она удаляет первый элемент списка. Вот что конкретно я не понял: зачем мы передаём указатель на указатель? Почему при инициализации новой структуры мы используем указатель? Что происходит, когда мы пишем prev = (*head)? Почему при инициализации prev мы присваиваем этой переменной NULL, а потом пишем free(prev) (если мы не выделяем динамическую память, то как туда запишется структуры head и зачем мы потом чистим память)?
Объясните, пожалуйста, буду очень благодарен.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
typedef struct node {
    int data;
    struct node* next;
} node;
 
int pop(node** head) 
{
    node* prev = NULL;
    int val;
    if (head == NULL) {
        exit(-1);
    }
    prev = (*head);
    val = prev->data;
    (*head) = (*head)->next;
    free(prev);
    return val;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2020, 03:44
Ответы с готовыми решениями:

Не могу разобраться со списками
Как можно перебрать операторо if значения списка Choice. Нужен вот такой синтаксис: if (позиция...

Никак не могу разобраться
Люди помогите пожалуйста, мучаюсь никак не получается ((( Ввести одномерный массив A из N...

Никак не могу разобраться с ошибкой.
Задание: Имеются числа х1,х2,...,хn.Расставить их в таблице размером (nхn) так,чтобы в каждой...

Никак не могу разобраться с postmessage
#include "stdafx.h" #include <windows.h> #include <iostream> using namespace std; int...

1
Заблокирован
27.02.2020, 17:49 2
head же меняется потому **, а то на что он указывал нужно удалить, чтоб не болталось в памяти
0
27.02.2020, 17:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2020, 17:49
Помогаю со студенческими работами здесь

Никак не могу разобраться с ООП
В общем товарищи не могу сделать простого(наверное) Нужно привести в красивый вид, избавится от...

Никак не могу разобраться в FoxPro 9.0
Как сделать нормальную таблицу? в старом FoxPro было !keyrus и он рисовал таблицу через Shift а в...

Никак не могу разобраться со скриптом
Здравствуйте! У меня такая ситуация. Есть код, вызывающий popup окно. Что нужно дописать, чтобы...

Callback, никак не могу разобраться
Доброго времени суток. Есть следующий код addScr : function(domain, src, jsonpCallback, paramName)...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru