2012-04-24 10 views
0
typedef struct Node{ 
     int x; 
     int y; 
     struct Node* next; 
    }Node; 
내가 이런 식으로 주 "목록"에 생성 할

:초기화 구조체

int main(){ 
     Node list = {1,2,NULL}; 
    } 

내가 선언에서 구조체를 초기화하려면이 방법으로

int main(){ 
     Node list; 
} 

하지를 struct tryed this :

typedef struct Node{ 
     int x; 
     int y; 
     struct Node* next; 
    }Node = {1,2,NULL}; 

오류 C2513 : '노드': '='이전에 선언없이 변수

당신은 C. 사용에 구조체 멤버를 생성자와 같은 기능 또는 생성자를 미리 정의 된 값을 줄 수

답변

3

도움이 필요 같은 매크로.

+0

당신은 저에게 exmple을 줄 수 있습니까? – Alex

+0

@ user1354271 내가 할 수있는 건'Node list = {1,2, NULL}; '에 대한 흉한 포장 일 뿐이다. – cnicutar

+0

주 내가 바꿀 수 없다,이 방법이어야합니다 : int main() { 노드 목록; } 하지만 사용자의 초기화 된 노드가 필요합니다.이 방법으로 목록을 선언 한 경우 – Alex

1

typedef (또는 struct) "문"은 개체가 아닌 형식을 정의합니다.

유형에는 값이 없습니다. 사물과 관련하여 가치에 대해 말하는 것은 의미가 있습니다.

개체에 기본값 (암시 적으로 초기화 될 때 0 제외)이 없습니다.

그래서 원하는 것을 할 수 없습니다.

+0

defaul에 의해 "0"으로 초기화되지 않음 – Alex

+0

개체가 암시 적으로 초기화되면 '0'으로 초기화됩니다. – pmg

+0

내가 바꿀 수없는 주체는 다음과 같습니다. int main() { 노드 목록; } 하지만이 방법으로 목록을 선언하면 사용자 초기화 노드가 필요합니다. – Alex

관련 문제