błąd: wskaźnik do niekompletnego typu klasy jest niedozwolony
W tym momencie jestem zaskoczony implementacją drzewa trójskładnikowego:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>typedef struct tnode *Tptr;
typedef struct node
{
char splitchar;
Tptr lokid,eqkid,hikid;}Tnode;int research(Tptr p,char *s)
{
if (!p) return 0;
if (*s<p->
}int main(){
return 0;
}
Kiedy przesuwam ikonę myszy obok
p, pokazuje mi kolor czerwony i błąd:
pointer to incomplete class type is not allowed
Moje pytanie brzmi dokładnie, czym jest niekompletna klasa? Proszę, pomóż mi, dzięki.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
3 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Prawdopodobnie powinieneś zamienić na jako znacznik struktury w twoim przykładzie, aby uzyskać to, czego chcesz.
Anonimowy użytkownik
Potwierdzenie od:
A tak przy okazji, czy istnieje łatwy sposób, aby temu zapobiec w przyszłości ...
W tym momencie jest zawsze aliasem odpowiedniego typu, nawet jeśli zmienisz nazwę na inną.
Anonimowy użytkownik
Potwierdzenie od:
Zwróć uwagę, że linia 5 sprawia, że jest nazwą wskaźnika do struktury o nazwie „tnode”, a nie „node”, ale „tnode”, małe litery t, node. Linia 6 uruchamia typedef, a następnie rozpoczyna definiowanie struktury o nazwie „node”, bez „t”, tylko „node”. Linia 11. kończy definicję „węzła struktury”, a następnie podaje nazwę wcześniejszej definicji typu: „Tnode”, wielkie litery T, węzeł.
W tej chwili masz cztery różne nazwy: Tptr, typ tnode, typ tnode i node. Ten z małą literą „t” nigdy nie został „ukończony”, więc jest „typem niepełnym” (ale nie klasą, ponieważ C nie ma klas).