Mittels Index auf Strukturmitglied zugreifen



  • Hallo,

    gibt es irgendeine Möglichkeit (z.B. mit Zeigern) mittels Index auf Mitglieder einer Struktur zuzugreifen? Ähnlich wie bei einem Array.
    Oder allgemeiner gesagt: Ich möchte auf strukturierte Daten verschiedener Datentypen mit Hilfe eines Index zugreifen.

    Danke im Voraus.

    Gruß
    ewigerstudent



  • Auf Struktur-Elemente greift man üblicherweise über ihren Namen zu. Aber du kannst mir gerne erklären, in welchem Zusammenhang du die Elemente einer struct per Index ansprechen willst.



  • überlade einfach den * Operaotr und gib bei einem Index einfach das entsprechende Strukturelment raus..



  • Hässliche Lösung:

    #include <iostream>
    using namespace std;
    
    struct Struktur
    {
    	int a;			// Index 0
    	char b;			// Index 1
    	double x;		// Index 2
    
    	Struktur()
    	{
    		a = 2;
    	}
    
    	void * operator[] (int i)
    	{
    		if(i == 0)
    			return &a;
    
                    // ...
    
    		return NULL;
    	}
    
    };
    
    int main()
    {
    	Struktur x;
    
    	int *a = (int*)x[0];
    	cout<<*a<<endl;
    
    	cin.get();
    }
    


  • Hallo CStoll,

    ich muss gestehen, dass ich nicht ganz aus der PC-, sonder aus der Embedded-Welt komme, daher "eigentlich" auch nur Ansi C. Jetzt aber bitte nicht schlagen. ;o)

    Ich versuche gerade eine Art "Datenbank" mit Inferacefunktionen aufzubauen. Ziel ist es, die Daten im C-Modul zu kapseln (static-Deklaration). Der Zugriff auf die DB-Elemente erfolgt mittels übergebener Konstante (z.B. cBATTERY_VOLTAGE), welche ich nun irgendwie mit dem eigentlichen DB-Element in Relation bringen muss.

    An solchen Tagen vermisse ich OOP. ;o)

    Gruß
    ewigerstudent


Anmelden zum Antworten