2010-12-06 4 views
2

got_packet 콜백 함수가 있습니다.구조의 인스턴스에 대한 포인터의 멤버를 얻는 방법?

void got_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet) { 
    WMShark *shark = (WMShark *)args; 

    WMPacket *foundPacket = [[WMPacket alloc] init]; 
    foundPacket.packetNumber = [[shark capturedPackets] count]; 

    foundPacket.timeStamp = header.ts; // <-- PROBLEM IS HERE 

    ... 

    NSLog(@"%@: %s", shark, packet); 
} 

foundPacket.timeStamp = header.ts; 줄에 error: request for member 'ts' in something not a structure or union 오류가 발생합니다.

...
const struct pcap_pkthdr 다음 멤버가있는 구조체에 대한 포인터입니다.

  • ts - 패킷이 캡처 된 시간

...


ts에 액세스하려면 어떻게합니까? 감사.


다이 하드 C- 개발자의 경우, 대괄호는 C의 수퍼 세트 인 Objective-C에서 사용됩니다.이 경우 무시할 수 있습니다.이 경우 이니셜 라이저입니다.

답변

3

. 대신 -> 연산자를 사용

header->ts 
+0

는 기존 하나님 감사합니다! = D –

+0

:-) 대안으로, (* 헤더) .ts는 똑같이 잘 작동해야합니다. – Eiko

2

header 포인터입니다. 당신은 pcap_pkthdr 인스턴스에 대한 포인터이 header->ts

1

header으로처럼 액세스 할 수 있습니다, 그렇게 같은 ->를 사용하여 역 참조 할 필요가 :

header->ts 
관련 문제