Hallo habe eine Struktur typedef struct{ int* i }STRUKTUR; jetzt ist klar, lege ich eine Struktur an sollte das so funktionieren.. int k; const STRUKTUR s1 = {&k}; nur habe ich jetzt einen int* der je nach einer Auswahl auf eine andere int Variable zeigt, wie lege ich jetzt eine const Struktur an die mir dann jeweils auf die richtige Variable zeigt. int* k; const STRUKTUR s1 = {??k}; void main() { int moeglichkeit1 = 0, moeglichkeit2 = 2; int auswahl = 0; switch(auswahl) { case 0: k = &moeglichkeit1; break; default: k = &moeglichkeit2; break; } }
In diesem Fall kannst du keine Initialisierung bei der Deklaration benutzen. Denn diese werden ja ausgeführt, bevor das Program zu laufen anfängt. Du möchtest aber erst während das Program läuft, den konkreten Wert festlegen (dazu später noch mehr). Das müsste man jetzt so machen: const STRUKTUR s1; void main() { int moeglichkeit1 = 0, moeglichkeit2 = 2; int auswahl = 0; switch(auswahl) { case 0: s1.i = &moeglichkeit1; break; default: s1.i = &moeglichkeit2; break; } } Die andere Möglichkiet wäre eine Indirektion mehr einzuführen (und der Titel des Threads zeigt, dass du bereit bist in diese richtung zu gehen): typedef struct{ int** i }STRUKTUR; dann würde das klappen: int* k; const STRUKTUR s1 = {&k}; void main() { int moeglichkeit1 = 0, moeglichkeit2 = 2; int auswahl = 0; switch(auswahl) { case 0: k = &moeglichkeit1; break; default: k = &moeglichkeit2; break; } } In s1 steht die Adresse des Pointers, welcher seinerseits auf den wirklichen int zeigt. Nur: In diesem Fall ist das mit Kanonen auf Spatzen geschossen. Man gewinnt nichts dabei, im Gegenteil.
Vielen Dank.. ich hab mein Problem auf das Minimum heruntergebrochen, es ist schon ein bisserl komplexer, aber so klappt es.. thx
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.