Generischen Zeiger auf Datenstruktur legen
-
Hallo,
ich habe folgendes Problem.
Ich besitze zwei Datenstrukturen, mit dem selben Aufbau.typedef struct { const char *ccNodeText; // AnsiString Knotentext (Menütext) int iMenuId; // Integervariable für die Identifizierung // des Menüfesnters. int iParameters[]; // Parameternummer, die mit dem Eintrag // abgedeckt werden. int iHelpIndex; // Variable zur Identifizierng des // Hilfeeintrags in der Hilfedatei. int iIconIndex; // Integervariable zur identifizierung // des Icons an der Stelle float fMin; // Minimalwert float fMax; // Maximalwert //int iNodeIndex; // Variable ist Identifizierend für den // Knoten. // iNodeIndex = 0 wird nicht berücksichtigt // iNodeIndex > 0 Eintrag im mit Parameter void *Data; // void-Zeiger auf Datenstruktur } PARAMETER_TREE;
Die beiden Strukturen sehen wie folgt aus:
/ Einstiegsknoten des TreeView-Objekts const PARAMETER_TREE TopicTree1[] = { {"Datensatz",NODE_NOTAVAIL}, {"Dataset_Information", NODE_NOTAVAIL, {0}, 0, 0, 0, 0, 0}, {"\0", NODE_NOTAVAIL} }; //--------------------------------------------------------------------------- // Einstiegsknoten des TreeView-Objekts const PARAMETER_TREE TopicTree0[] = { {"Dataset", NODE_NOTAVAIL}, {"Basic_Configuration" , NODE_MENU, {0}, 0, 0, 0, 0, (void*)TopicTree1}, {"\0", NODE_NOTAVAIL} };
Wie zu erkennen ist, das letzte Element der Datenstruktur ein generischer Zeiger auf eine andere Datenstruktur.
Möchte ich nun auf den Eintrag "TopicTree0[1].Data" zugreifen, erhalte ich aber nur einen Wert NULL und nicht hinter der Adresse liegende Datenstruktur "TopicTree1". Ich muss dieses aber über einen void*- Zeiger lösen. Was mache ich verkehrt? Wie kann ich das Problem lösen?
-
Nach drei Stunden Suche, habe ich endlich das Problem gefunden.
Die Datestruktur entält einen Eintrag Namens
int iParameters[]Musste dieses auskommentieren, dmit der variable Speicherbereich verschwindet.
-