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