添加整数链表C ++

时间:2015-12-24 15:38:07

标签: c++ linked-list

我想在链接列表中添加1到4个整数,但是我收到以下错误。

/ *** thread 1 exc_bad_access(code = 1 address = 0x8)

#include <iostream>
#include "d_node.h"

using namespace std;
int main() {
    node <int>*front=NULL,*curr=front,*newNode;
    int i=0;

    for(i=0;i<4;i++){
    if(front==NULL)
        front=new node<int>(i);
    else{
        newNode=new node<int>(i);
        curr->next=newNode; //**ERROR in the line thread 1 exc_bad_access (code=1 address=0x8)
        curr=newNode;
    }
    }

//WRİTELİNKEDLİST

    while(front!=NULL){
        cout<<front->nodeValue;
        front=front->next;
    }
    return 0;
}

//预期输出 0 1 2 3

我该如何解决问题?

2 个答案:

答案 0 :(得分:1)

在解除引用之前,您必须将curr设置为正确的值。

尝试在curr = front;之后添加front=new node<int>(i);

答案 1 :(得分:1)

node <int>*front=NULL,*curr=front,*newNode;

curr设置为NULL

当您更改front的值时,这不会更改curr的值,因为您没有更改他们指向的内容,而是front实际指向的内容。这就像期望b在以下示例中为20

int a = 10, b = a;
a = 20;

如您所知b仍然是10,这在改变指针存储的地址时是相同的行为。

所以当你使用

curr->next=newNode;

curr仍然是NULL并尝试使用空指针是未定义的行为。在这种情况下,您将获得exc_bad_access

在使用之前,您需要将curr设置为curr = front;之类的好价值。