(구조체 포인터)가 가리키는 (구조체 내의 포인터 변수)에 (구조체 포인터)를 넣고자 할 때 워닝 처리



다름이 아니라, 이런 상황에 처해 있어서 짐작가는 이유 있으면 도움 좀 주시면 감사하겠습니다.


글로벌 위치에 타잎데프를 이용해 이름을 Node로 지어준 스트럭트를 선언했으며,

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

어떤 글로벌 함수(링크드 리스트 처리하는 함수) 에서 이런 부분이 있습니다.

이 함수에 인자로 전달받은 구조체 Node형 포인터 p에 대해서

함수(){
Node* left_tmp=(Node*)malloc(sizeof(Node));
p->next=left_tmp;
}

이것이 

warning: assignment from incompatible pointer type 를 불러 옵니다.

이를 다름과 같이 변형해도 같은 워닝이 뜹니다.

함수(){
Node* left_tmp=(Node*)malloc(sizeof(Node));p->next= (Node*) left_tmp;
}

왜 이럴까요..... 에러가 아니니 그냥 넘길까 싶기도 한데, 영 좀 그렇네요

p->next는 역시 Node* 형 타잎을 가진 변수인데, 왜 타잎체크에서 경고가 자꾸 나온는지, 모르겠습니다.