Локальные переменные и изменение значений из метода - C (СИ)
Формулировка задачи:
Всем привет,
никак не могу проникнутся духом Си. Пытаюсь написать "связной" список. Есть метод
Который берет указатель на лист (первый элемент). Сохранятся указатель на следующий элемент, а указатель на первый удаляется с помощью free(). Ну и наконец, второй элемент встает на место первого, но как только выходим из метода, указатель указывает в некуда.
int pop(linkedList * liste) {
linkedList *element;
element = liste->nextElement;
int value = liste->value;
free(liste);
liste = element;
return value;
}Решение задачи: «Локальные переменные и изменение значений из метода»
textual
Листинг программы
void /* or whatever */ func1(something_t s); /* передача структуры по значению */ void func2(something_t * p); /* передача указателя на структуру */ void func3(something_t ** pp); /* передача указателя на указатель на структуру */
Объяснение кода листинга программы
- В коде определены три функции: func1, func2, func3.
- Функция func1 принимает в качестве аргумента структуру something_t s.
- Функция func2 принимает в качестве аргумента указатель на структуру something_t p.
- Функция func3 принимает в качестве аргумента указатель на указатель на структуру something_t pp.
- В функции func1 происходит изменение значения переменной s.
- В функции func2 происходит изменение значения переменной p.
- В функции func3 происходит изменение значения переменной pp.