Hier sind zwei Strukturen, die ich verwende. Ich bin mir nicht sicher, wie man initialisiert, damit Mitglied der Struktur auf Struktur selbst zeigt. Ich bin mir nicht sicher, ob das möglich ist oder nicht.Pointing-Mitglied von Struktur zu Struktur selbst in C
typedef struct __node
{
int value;
struct __node* left;
struct __node* right;
}setNode;
typedef struct __set {
setNode* root;
//mutex for this set (To be implemented)
}set;
Ich mag Mitglieder der Menge initialisieren, aber nicht sicher, wie soll ich nun tun result->root
zur gleichen Adresse wie die set result
zu zeigen.
set* new_set()
{
set* result = malloc(sizeof(set));
result -> root = NULL; // Not sure???
}
Ich möchte den Zeiger auf root bekommen.
void someOther(set* s)
{
setNode* temp = s -> root;
//....
}
Entschuldigung, wenn die Frage zu vage ist.
Additional Info
Ich möchte zwei structs. Eine, die Knoten eines Baumes enthält [setNode] und eine zweite Struktur, die einen Zeiger auf die Wurzel der Baumstruktur und einige andere Elemente enthält (wie Mutex für diesen Baum) [set]. Das ist kein Problem.
Problem: In einer Funktion habe ich setNode* temp = someSet -> root;
, so dass ich in der Lage sein sollte, über den Baum zu gehen, d. H. Temp sollte auf root von someSet zeigen. Also, was sollte ich result -> root
in new_set-Funktion zuweisen?
'__node' ist UB, da sie zwei aufeinanderfolgende Unterstriche enthält. Tu das nicht. – Bathsheba
@Bathsheba Nicht UB, aber solche Namen sind reserviert. –
Frage ist unabhängig vom Layout ... –