malloc하면 error: invalid application of `sizeof' to incomplete type.. 오류가 납니다
struct nfq_q_handle
{
struct nfq_q_handle *next;
struct nfq_handle *h;
u_int16_t id;
nfq_callback *cb;
void *data;
};
struct nfq_data {
/* packet_hdr - it HAVE to be the same as struct nfqnl_msg_packet_hdr */
struct {
uint32_t packet_id; /* unique ID of packet in queue in network order */
uint16_t hw_protocol; /* hw protocol in network order */
uint8_t hook; /* netfilter hook */
} packet_hdr;
/* packet_hw - it HAVE to be the same as struct nfqnl_msg_packet_hw */
struct {
uint16_t hw_addrlen; /* len of hw_addr in network order */
uint16_t _pad;
uint8_t hw_addr[8];
} packet_hw;
/* tm */
struct {
long sec;
long usec;
} tm;
uint32_t if_index; /* Unique iface id */
uint32_t verdict; /* Netfilter verdict value */
uint32_t mark; /* Mark value */
uint8_t if_name[IFNAMSIZE]; /* Name of incoming or outgoing iface */
uint32_t data_len; /* Length of packet */
uint8_t payload[0]; /* packet data */
};
위의 두 구조체를 malloc해서 새롭게 변수를 만들려고합니다.
struct nfq_q_handle* qh_temp = (struct nfq_q_handle*)malloc(sizeof(struct nfq_q_handle));
strcut nfq_data* nfa_temp = (struct nfq_data*)malloc(sizeof(struct nfq_data));
그런데 오류가 발생하네요..
invalid application of 'sizeof' to incomplete type 'struct nfq_q_handle'
invalid application of 'sizeof' to incomplete type 'struct nfq_data'
이러면서 sizeof 안에 있는 struct에 빨간줄이 짝 그어집니다..
어떻게 하면 malloc할수 있을까요?ㅠ
네 프로토 타입 선언 – 코드 – 구조체 정의 순으로
네 프로토 타입 선언 – 코드 – 구조체 정의 순으로 짜신거같은데 구조체 정의는 코드 위에 와야 합니다
댓글 달기