2014-06-22 1 views
0

구조체에 의심의 여지가 있습니다.C++에서 구조 노드 생성

struct node 
    { 
     int data; 
     node* next; 
    }node; <---- what does this actually do? 

감사합니다. 오류 : '*'토큰 컴파일 전에 예상 생성자, 소멸자, 또는 형식 변환 종료로 인해 -Wfatal에

에 ::

안녕하세요,이 오류를 해결하기 위해 노력 ..

라인 (11)가 추가 - 오류.

#include <iostream> 

using namespace std; 

struct node 
{ 
    int data; 
    node* next; 
}node; 

node* nodeNew(int newData, node* newNext) // line 11 
{ 
    node* n= new node; 
    n->data= newData; 
    n->next= newNext; 
    return n; 
} 

void listPrint(node* p) 
{ 
    while(p!=NULL) 
    { 
     cout << p->data << " "; p= p->next; 
    } 
} 

int main() 
{ 


} 

구조체에 "노드"를 추가하면 문제가 발생합니다.

+0

당신은 당신의 제목에서 그것을 말했습니다. 노드를 만듭니다. – chris

+0

즉'node'라는 변수 ('node' 타입)를 선언하는 것을 의미합니다. –

+0

고맙습니다 =) –

답변

2

마지막 행은

}node; 

node라는 타입 struct node와 변수를 생성한다.

struct node { 
     int data; 
     node* next; 
    }; 
    struct node node; 

편집 : 그것은 동등의 편집 한 라인의 질문에 답변 node는 타입이 아니기 때문에

node* nodeNew(int newData, node* newNext) 

이 erroring된다. 어느로 변경 :

struct node* nodeNew(int newData, struct node* newNext) 

하거나 구조체 선언을 변경

typedef struct node node; 
    struct node { 
     int data; 
     node* next; 
    }; 
+0

수정 사항을 처리하도록 편집되었습니다. 또한이 답변이 도움이된다면, 그것을 받아들이는 것을 고려하십시오 (upvote/downvote 버튼 근처의 화살표). –

+0

안녕하세요 패트릭 빠른 응답 주셔서 감사합니다. "구조체 노드 * nodeNew (int newData, 노드 * newNext)"넣으려고했는데 줄 11 : 오류 : '노드'형식이 아닙니다 .. 흠 –

+0

그리고 난 main()에서 nodeNew (int newData, node * newNext)를 실행하려고했습니다. 작동하지 않습니다. hmm –

1

가 정확하기 위해서는 소정의 범위에서 소정의 구조체로부터 객체를 생성한다. '변수'라는 단어는 너무 일반적인 용어입니다.