Я писал программу, которая довольно сложна по сравнению с тем, с чем я имел дело до сих пор. В любом случае в какой-то момент я должен написать функцию, которая будет управлять списком структур. Я пытаюсь сделать этот вопрос как можно проще, поэтому я написал довольно простой фрагмент кода только для справки.
Вот что: сначала я вызываю testf
из другой функции, предоставляя ей действительный ток
, а также i
со значением 0 Это означает, что testf вызовет себя примерно 100 раз, прежде чем начнет обращаться к остальной части кода.Это когда все сгенерированные экземпляры testf
начнут разрешаться.
void testf(listnode *current, int *i) {
wordwagon *current2;
current2 = current;
if (*i < 100) {
*i = *i + 1;
current2 = current2->next;
testf(current2, i);
}
current = current->next;
return;
}
Если, скажем, у меня в распоряжении достаточно подключенных узлов списка, это current = current-> next;
правильный способ для "последней" функции testf получить доступ и отредактировать вызывающего абонента. ] current2
(которое является current
этой функции), или я ужасно ошибаюсь?
Если да, то как можно внести изменения в переменные вызывающей функции изнутри вызываемой функции и убедиться, что они не исчезнут, как только вызываемая функция вернется? Мне довольно сложно понять, как работают указатели.
Очень вероятно, что я упустил важную информацию или недостаточно четко задал свой вопрос. Пожалуйста, сообщите мне, если это так, чтобы я мог редактировать все, что вам нужно.
Заранее спасибо.