Wie um zu überprüfen, ob eine Struktur initialisiert wird?
Ich habe eine Tabelle, in der ich die Umsetzung mit Daten-Strukturen. Ein wichtiger block von meinem code sieht so aus(das h ist eine Datenstruktur-Tabelle ist eine Tabelle, die speichert, andere Strukturen):
(h->table[hash(key, h->size)]
Während mein code ausgeführt wird, eine Tabelle[i]'s werden initialisiert, und einige sind nicht. Wenn ich mein test-code für eine Tabelle[i], die noch nicht initialisiert wurde, noch bekomme ich eine valgrind-Fehler, die im Grunde sagt, ich kann nicht arbeiten mit einer nicht initialisierten array.
Meine Frage ist, wie würde ich überprüfen, um zu sehen, ob eine bestimmte h->Tabelle[i] initialisiert wird oder nicht?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht. Um das problem zu beheben, immer initialisieren der struct, bevor Sie ihn verwenden (auch wenn alle die Initialisierung funktioniert, ist das struct um einen bekannten "leer"/"nicht besiedelt" - Zustand).
calloc()
Federn, Sinn für weltliche init-Allokation und die Beurteilung durch diese Zeiger, würde wahrscheinlich helfen, wenn Sie ordnungsgemäß verwendet.Wenn Sie erklären, Ihre Strukturen, Sie alle zu null mit calloc oder memset, dann später vergleichen zu 0 oder NULL, um zu überprüfen, ob die Struktur wird nicht verwendet.