Visual c++ 如何使用c+中的整数变量从链表中删除节点+;

Visual c++ 如何使用c+中的整数变量从链表中删除节点+;,visual-c++,linked-list,int,delete-operator,Visual C++,Linked List,Int,Delete Operator,在我的项目中,我正在创建一个链表。目前,我正在制作一个函数,根据用户输入的编号,根据节点的位置删除节点。这个函数的问题是,每次我尝试运行程序时,我的一个变量pnode总是作为未初始化的局部变量列出。下面是代码的样子 Class list{ private: struct nodelist{ int hold; nodelist *next }; nodelist *head public: void deleteitem(int n){

在我的项目中,我正在创建一个链表。目前,我正在制作一个函数,根据用户输入的编号,根据节点的位置删除节点。这个函数的问题是,每次我尝试运行程序时,我的一个变量pnode总是作为未初始化的局部变量列出。下面是代码的样子

Class list{
  private:
   struct nodelist{
     int hold;
     nodelist *next

   }; 
   nodelist *head
  public:
     void deleteitem(int n){
         nodelist *nodepr
         nodelist *pnode
         if(!head){
           return;
         }
        if(n==0){
           nodepr=head->next;
           delete head;
           head=nodepr;
        }
        else{
           nodepr=head;
           int index=1;
           while(nodepr!=NULL && index!=n){
                pnode=nodepr;
                nodepr=nodepr->next;
                index++;




          }
          if(index==n){
             pnode->next=nodepr->next;
             delete nodepr;


          }






      }


}

请注意,它们是此类的其他函数。

在哪里定义变量
num
?在
if(num==0)
行中,假设读取
if(n==0)
?它应该是n变量sorry@user2340686对于
num=1
,代码显示未定义的行为,因为
pnode
未初始化。您能显示列表是如何填充的吗?有不平衡的
{}
。修复您的代码,使其通过编译器。重新格式化也会有所帮助。正确缩进,删除多余的空行,您就会丢失
->编译并可读的Post代码。