У вас есть два основных варианта: пройти мимо указатель или пройти мимо ссылка .Передача по указателю требует использования указателя на указатель:
void modify_pointer(node **p) {
*p = new_value;
}
modify_pointer(&d);
Передача по ссылке использует &
:
void modify_pointer(node *&p) {
p = new_value;
}
modify_pointer(d);
Если вы передадите указатель как просто node *d
, то изменитеd
внутри функции будет изменять только локальную копию, как вы заметили.