2016-04-28 13 views
1

Ich habe zwei Strukturen, die sich gegenseitig referenzieren müssen, egal, was ich zuerst anwähle und Fehler, weil ich einen nicht identifizierten Typ verwende.Strukturen, die sich gegenseitig referenzieren

typedef struct _BLOCK 
{ 
    int size; 
    int offset; 
    struct _BLOCK *nextBlock; 
    struct _BLOCK *prevBlock; 
    Pool* parent; //here 
} Block; 

typedef struct _POOL 
{ 
    int size; 
    void* memory; 
    Block* Allocated; 
    Block* Unallocated; 
} Pool; 

irgendwelche Möglichkeiten, dies zu lösen?

+2

Namen, die mit '_' beginnen, gefolgt von einem Großbuchstaben oder einem anderen Unterstrich, sind für die Implementierung reserviert. ** Benutze sie nicht **. – Olaf

Antwort

4

Sie können die Vorwärtsdeklaration verwenden.

typedef struct _POOL Pool; 

typedef struct _BLOCK 
{ 
    int size; 
    int offset; 
    struct _BLOCK *nextBlock; 
    struct _BLOCK *prevBlock; 
    Pool* parent; 
} Block; 

struct _POOL 
{ 
    int size; 
    void* memory; 
    Block* Allocated; 
    Block* Unallocated; 
}; 
+0

sehr hilfreich, Prost – David

Verwandte Themen