Это очень C-подобный код, а не C ++.
Обычно, когда что-то передается по значению, функция работает с копией данных:
void foo(int i)
{
i = 5; // copy is set to 5
}
int x = 7;
foo(x);
// x is still 7
В Cвместо этого вы передаете указатель на переменную и можете изменить его следующим образом:
void foo(int* i)
{
*i = 5; // whatever i points to is set to 5
}
int x = 7;
foo(&x);
// x is 5
Для вас вместо int
это digit*
.(В результате указатель на указатель.)
В C ++ были введены ссылки.Ссылка - это псевдоним другого объекта.Таким образом, вы должны сделать что-то вроде этого:
void foo(int& i) // i is an alias to another value
{
i = 5; // x is set to 5
}
int x = 7;
foo(x); // pass x as alias, not address of x.
// x is 5
Ссылка, как правило, предпочтительнее, так как она навязывает вам фактическую ссылку на объект и упрощает как вызов, так и рабочий код.Конечно, в C ++ вы бы не реализовали список самостоятельно, вы бы использовали std::list
.