2010-10-03 2 views
0

ошибка: разыменования указателя к неполному типу
Проблема линия «GL-> точка [0] = (список STRUCT *) &foo;»
Я где-то читал, что я мог бы хранить декларацию. Если это так, мне нужно, чтобы это объяснило мне.C: связанные списки спутанность

struct ref { 
    char **name; 
    struct list **point; 
}; 

int main () { 
    typedef struct { 
     char **name; 
     struct list **point; 
    } temp; 

    struct ref *gl; 

    gl->name = malloc (1024 * sizeof(char *)); 
    gl->name[0] = "A"; 

    temp foo; 
    foo.name = malloc (1024 * sizeof(char *)); 
    foo.name[0] = "B"; 

    gl->point[0] = (struct list *)&foo; 

    printf ("!%s!\n" , gl->point[0]->name[0]); 
} 
+0

Обратите внимание, что типы typedef temp и struct ref не являются «одинаковыми»; вы не должны повторять такой код. –

+0

О, я ошибся, чтобы все структуры были одного типа. что очень помогает. – Jay

ответ

1

Что такое struct list? Нет типа с именем struct list (по крайней мере, в том, что вы показали).

Возможно, вы имели в виду struct ref?

0

Нигде в примере кода вы не определяете struct list, что и есть ошибка.

Смежные вопросы