C 구조체로 포인터 값 가져오기
개념을 잡아놔도 가끔 햇갈려서 잘못 쓸데가 많다
만약 구조체
typedef struct
{
uint16 neighborAddress;
uint8 neighborExtAddr[Z_EXTADDR_LEN];
uint16 panId;
uint8 age; // number of nwkLinkStatusPeriod since last link status
linkInfo_t linkInfo;
} neighborEntry_t;
이런 놈이 있다고 하면 이런 놈들을 배열로 가지고 있는 놈은 이렇게 있을 수 있다.
neighborEntry_t neighborTable[MAX_NEIGHBOR_ENTRIES];
이럴 때 배열안에 들어있는 놈들을 하나씩 구조체로 받아서 사용해야한다.
아래처럼
neighborEntry_t *neighborEntry;
neighborEntry = &neighborTable[selectNum];
이렇게 해야 포인터로 잡아놓은 놈(neighborEntry)한테 배열의 주소를 받아와서 맹글어놓은 neighborEntry에 쏙쏙 들어가 준다.
그런 다음 실제 값을 보고 싶다면 neighborEntry->panId 이렇게 하면 실제 값을 확인 할 수 있다.
자꾸 까먹는게 포인터로 받아와야되는 빨간부분인데.....빨간부분을 놓치면 자연스럽게 파란 부분도 까먹는다 이거야 원~~~~
까먹지 말자
만약 구조체
typedef struct
{
uint16 neighborAddress;
uint8 neighborExtAddr[Z_EXTADDR_LEN];
uint16 panId;
uint8 age; // number of nwkLinkStatusPeriod since last link status
linkInfo_t linkInfo;
} neighborEntry_t;
이런 놈이 있다고 하면 이런 놈들을 배열로 가지고 있는 놈은 이렇게 있을 수 있다.
neighborEntry_t neighborTable[MAX_NEIGHBOR_ENTRIES];
이럴 때 배열안에 들어있는 놈들을 하나씩 구조체로 받아서 사용해야한다.
아래처럼
neighborEntry_t *neighborEntry;
neighborEntry = &neighborTable[selectNum];
이렇게 해야 포인터로 잡아놓은 놈(neighborEntry)한테 배열의 주소를 받아와서 맹글어놓은 neighborEntry에 쏙쏙 들어가 준다.
그런 다음 실제 값을 보고 싶다면 neighborEntry->panId 이렇게 하면 실제 값을 확인 할 수 있다.
자꾸 까먹는게 포인터로 받아와야되는 빨간부분인데.....빨간부분을 놓치면 자연스럽게 파란 부분도 까먹는다 이거야 원~~~~
까먹지 말자
댓글
댓글 쓰기