我正在尝试更改堆栈的顶部指针。
1)直接更改指针正常工作。并且传递的指针也相应地改变了。
root = root -> next;
2)但是在取消引用指针然后在本地更改它不会改变指针。
Node* root = *top;
root = root -> next
功能定义:
int pop(Node** top)
{
if(isEmpty(*top))
return -1;
Node* temp = *top
int popped_data = temp-> data;
Node* root = *top;
//root = root -> next; // This is not modifying the actual pointer passed
*top = (*top)->next; // This is working fine. top is changed
delete temp;
return popped_data;
}
答案 0 :(得分:0)
通过这个你正在复制一个指针
Node* root = *top;
以及
root = root->next;
修改此副本。
您可以改为使用对指针的引用:
Node *&root= *top;