-4
링크 된 목록에 노드를 정의 할 때 나는이 혼란을 겪었습니다. 는 head
노드를 머리에 포인터 여기,구조체 메모리 할당과 malloc() in c
struct node *current = head;
을 고려하십시오. 다른 방법은 다음과 같습니다.
둘 다 동일하므로 어떤 차이가 있습니까? 첫 번째 경우에 메모리가 어떻게 할당됩니까?
링크 된 목록에 노드를 정의 할 때 나는이 혼란을 겪었습니다. 는 head
노드를 머리에 포인터 여기,구조체 메모리 할당과 malloc() in c
struct node *current = head;
을 고려하십시오. 다른 방법은 다음과 같습니다.
둘 다 동일하므로 어떤 차이가 있습니까? 첫 번째 경우에 메모리가 어떻게 할당됩니까?
두 번째 버전은 malloc(sizeof(struct node))
을 호출하고 반환 된 포인터를 잃어 버리는 점이 다릅니다. 즉 메모리 누수입니다. 다음을 수행하여 동일한 효과를 얻을 수 있습니다.
malloc(sizeof(struct node));
struct node *current = head;
첫 번째 경우에는 메모리가 할당되지 않습니다. 두 번째 경우에 할당 된 메모리가 누수됩니다. _pointer_가 무엇인지 배워야하고 _assign 할 때 무엇이 필요한지 배워야합니다. – myaut
그러면 현재 상황은 무엇입니까? –
[mcve]를 작성하거나 적어도 "head"의 선언/정의/초기화를 보여주십시오. – Yunnosch