2016-03-25 8 views
0

Ich habe versucht, diesen Fehler für Stunden zu beheben, aber es ist etwas, was ich bin fehlt:Klasse Typ Fehler C++ mit struct

Ich habe eine Struktur deklariert als:

typedef struct { 
    bool active; 
    unsigned long bbcount; 
    char buffer[BUFFSIZE]; 
    std::set<__uint> *bblist; 
} per_thread_t; 

Später ich m Zuteilung für es Speicher und einige Variablen einschließlich der set wie diese Einstellung:

per_thread_t *data = (per_thread_t *)malloc(sizeof(per_thread_t)); 
data->active = false; 
data->bblist = new std::set<__uint>(); 
data->bblist.find(6328); 

Aber ich erhalte den Fehler error C2228: left of '.find' must have class/struct/union.

Was mache ich hier falsch?

Danke

+0

'->' für Zeiger. Sie müssen den Zeiger dereferenzieren. Sie können also entweder '(* data-> bblist) .find' oder' data-> bblist-> find' wählen. – Freddy

Antwort

4

bblist ein Zeigertyp ist. Sie müssen darauf wie folgt zugreifen:

data->bblist->find(6328); 
+0

Danke !!! Ich wurde verrückt. Ich werde es als in 12 Minuten lösen, wenn ich kann – user1618465