Как я могу отредактировать указатель на узел списка из функции в рекурсии?

Я писал программу, которая довольно сложна по сравнению с тем, с чем я имел дело до сих пор. В любом случае в какой-то момент я должен написать функцию, которая будет управлять списком структур. Я пытаюсь сделать этот вопрос как можно проще, поэтому я написал довольно простой фрагмент кода только для справки.

Вот что: сначала я вызываю 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 этой функции), или я ужасно ошибаюсь? Если да, то как можно внести изменения в переменные вызывающей функции изнутри вызываемой функции и убедиться, что они не исчезнут, как только вызываемая функция вернется? Мне довольно сложно понять, как работают указатели.

Очень вероятно, что я упустил важную информацию или недостаточно четко задал свой вопрос. Пожалуйста, сообщите мне, если это так, чтобы я мог редактировать все, что вам нужно.

Заранее спасибо.

6
задан Eternal_Light 3 January 2012 в 05:23
поделиться