2016-10-15 2 views
-1

그래서 void 함수를 사용하여 연결된 목록을 만들 수 있는지 알고 싶습니다. 그래서void 함수를 사용하여 연결된 목록을 만드는 방법은 무엇입니까?

linked *head = NULL; 

로 시작하는 구조체를 노드와

typedef struct linked{ 
    int i; 
    struct linked *next; 
}linked; 

있을 것입니다 내가

void createLL(linked *head, int i) 

내가

를 사용하는 방식에 익숙하는 기능을 만들려면
linked *createLL(linked *head, int i) 

하지만 호기심이 많습니다. 어떻게 void 함수로 처리 할 것인가? 포인터에 대한 포인터 등의

+0

그리고 하나가 망치를 사용하고자하는 이유 나사에 넣어? – Olaf

+0

@Olaf 그것은 수업 과제이므로, 나는 선택의 여지가 많지 않습니다. –

+0

그건 바보 같은 제약이에요. 당신은 말도 안되는 코드가 아닌 좋은 코드를 작성하는 법을 배워야합니다. 자유롭게 느낀다 :-) – Olaf

답변

1

패스 헤드 :

void createLL(linked** head, int i) 
{ 
    linked* pNewHead = (linked*)malloc(sizeof(linked)); 
    pNewHead->i = i; 
    *head = pNewHead; 
} 

그런 다음 호출 :

linked* head = NULL; 
createLL(&head); 
+0

머리가 두 번 비어 있는지 확인하는 방법 *. 'if ((* head) == NULL)'일까요? –

+0

기능을 체크인하는 중이면 예. '* head' 주변에 괄호가 필요하지 않습니다. – AntonH

관련 문제