[완료]포인터 관련
글쓴이: asleea / 작성시간: 목, 2012/03/08 - 9:45오후
int i; skb_list_t *skb; dbg("plusb_alloc"); for(i=0 ; i < _SKB_NUM ; i++) { skb=kmalloc(sizeof(skb_list_t), GFP_KERNEL); if(!skb) { err("kmalloc for skb_list failed"); goto reject; } memset(skb, 0, sizeof(skb_list_t)); list_add(&skb->skb_list, &s->free_skb_list); }
두번째 줄에 skb_listT *skb; , skb가 포인터로 선언되었습니다.
그리고 마지막번째 줄을 보면 &skb->skb_list 라는 부분이 나오는데
포인터로 선언 되었을경우 skn->skb_list가 맞지 안나요 .?
Forums:
해당 수식은 skb의 맴버 변수인 skb_list의
해당 수식은 skb의 맴버 변수인 skb_list의 주소값을 구하는 수식입니다. -> 가 연산자 우선순위상 더 먼저 실행이 되지요.
결국 list_add가 요구하는 매개변수의 타입이 뭐냐, 그리고 skb_list의 타입이 뭐냐에 따라 다르겠지요.
아마도 list_add가 skb_list의 값까지 변화시킬 필요가 있으니... 위와 같은 코드가 되었을 겁니다.
ㄳ 합니다
궁굼증이 해소되었습니다 .감사합니다 .^^
댓글 달기