指针变量未分配

时间:2019-07-30 14:09:06

标签: c++ c++11 pointers recursion linked-list

我正在尝试编写一个程序以使用递归来反向链接列表。递归功能正常工作,除了终端 条件是,在函数完成后,被分配了值的指针变量(* start)不会在其中反映出来。

我放置了一些打印语句,发现在函数中该值已正确分配给指针。

 void revList(node *hd,node *start){
     if(hd->next==NULL){
         cout<<start<<endl; 
         start=hd;
         cout<<start<<endl; //this show it is being modified
         return;
     }
     node *first=hd;
     node *rest=hd->next;
     first->next=NULL;
     revList(rest,start);
     cout<<first<<" "<<rest<<endl;
     rest->next=first;
 }

int main(){ 
    node *head=new node;
    head->val=9;
    head->next=NULL;
    addnode(head,6);
    addnode(head,7);
    addnode(head,8);
    node *s;
    revList(head,s);
    cout<<s<<endl; //but it's not reflecting here.

    while(s!=NULL){
        cout<<s->val<<"->";
        s=s->next;
    }
return 0;
}

//output:
0x7ffd5c1422c0                                                                                                           
0x1e45c80                                                                                                                
0x1e45c60 0x1e45c80                                                                                                      
0x1e45c40 0x1e45c60                                                                                                      
0x1e45c20 0x1e45c40                                                                                                      
0x7ffd5c1422c0                                                                                                           
Segmentation fault (core dumped)//I'm not worried about this.

0 个答案:

没有答案