ошибка неполного типа в C - PullRequest
1 голос
/ 03 мая 2011

ошибка: параметр `DelNode_ptr 'имеет неполный тип

почему я получаю эту ошибку, все верно, здесь pktFltr содержит структуру ip, udp и tcp.

    struct classifier
    {
        int clsf_count;
        int key_node;
        struct packet_filter pktFltr;
        struct classifier *next;
    }__attribute__((packed));


    void delete_rules(struct classifier keys)
    {
        int key;
        key = 822;
        keys.key_node = 822;
        inet_aton("172.28.6.137", &(keys.pktFltr.ip.ip_src));
        inet_aton("172.28.6.110",&(keys.pktFltr.ip.ip_dst));
        keys.pktFltr.protocol.proto.uh_sport = ntohs(1032);
        keys.pktFltr.protocol.proto.uh_dport = ntohs(5000);
        DelNode(key,keys);
    }


    void DelNode(int key, struct classifer DelNode_ptr)
    {
    ..........
    .........
    }

    main()
    {
     struct classifier keys;
     delete_rules(keys);


    }

1 Ответ

5 голосов
/ 03 мая 2011

Вы сделали опечатку:

void DelNode(int key, struct classifer DelNode_ptr)

должно быть

void DelNode(int key, struct classifier DelNode_ptr)

Кроме того, вы, скорее всего, захотите передать указатель на структуру в ваших функциях:

void delete_rules(struct classifier *keys)
{
    int key;
    key = 822;
    keys->key_node = 822;
    inet_aton("172.28.6.137", &(keys->pktFltr.ip.ip_src));
    inet_aton("172.28.6.110",&(keys->pktFltr.ip.ip_dst));
    keys->pktFltr.protocol.proto.uh_sport = ntohs(1032);
    keys->pktFltr.protocol.proto.uh_dport = ntohs(5000);
    DelNode(key, keys);
}


void DelNode(int key, struct classifier *DelNode_ptr)
{
    // ...
}

main()
{
    struct classifier keys;
    delete_rules(&keys);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...