2015-01-24 6 views
-3

목록 뒷면의 요소를 삽입하는 프로그램을 작성하고 싶습니다. 나는 다음과 같은 C++ 프로그램이 있습니다링크 된 목록 - 목록의 뒤에 요소를 삽입하십시오.

#include<iostream> 
using namespace std; 

typedef struct node { 
    int val; 
    node * next; 
} node; 

int main() { 
    node * head = NULL; 
    int i, v[100]; 
    for (i=1; i<=5; i++) 
    { 
     cin >> v[i]; 
    } 
    for(i=1;i<=5;i++) 
    { 
     node *temp1=new node;       
     temp1 = head;     
     while(temp1->next!=NULL) 
      temp1 = temp1->next; 
     node *temp=new node;       
     temp->val = v[i];     
     temp->next = NULL;     
     temp1->next = temp; 
    } 
    while(head) { 
     cout << head->val << " "; 
     head = head->next ; 
    } 
    return 0; 
} 

문제는 내가 그것을 컴파일 그 때마다이입니다, 그것은 분할 오류 오류를 제공하고 그 이유를 이해하지 않습니다. 어떤 아이디어? 감사합니다. 당신이 당신의 while(temp1->next!=NULL) 루프 temp1->next 액세스 시간으로

+0

헤드가 초기화되지 않습니다. –

+0

두 번째 for-loop의 처음 두 줄은 즉각적인 메모리 누출이며 여러분에게 문제가됩니다. – WhozCraig

+0

@YuchenZhong은 "초기화 됨"의 정의에 따라 다릅니다. 확실히 초기 값을 가지고 있습니다 ('node * head = NULL;'). – WhozCraig

답변

0

temp1은 세그먼트 오류를 ​​일으키는 인해 temp1=head 할당에 이미 NULL이다.

관련 문제