Problem mit Zeigern
Verfasst: 04.06.2009, 13:47
Ich hab ein Problem mit Zeigern.
Ich habe einen Typ xyz und eine Funktion die einen Zeiger auf eben diese Typ zurück liefert. Nun möchte ich aber evtl. mehr als ein Ergebnis zurück liefern, also hab ich gedacht geb ich ein Array zurück, was im Grunde ja das gleiche wie ein Zeiger ist.
Anbei ein Beispiel das funktioniert. Was mich aber stört ist das ich mit negativen Indizes darauf zugreifen muss. Hat jemand ne Idee wie ich das anders machen kann, oder so hinbekomme das Element 1 auch per Index 0 zugreifbar ist?
Wenn ich ein
mache, dann stehe ich nicht auf dem korrekten ersten Element, das jedenfalls war mein ursprünglicher Plan.
Also im Grunde will ich (Zeiger - (Anzahl * GrößeVomRückgabeTyp)) zurückgeben, aber wie mach ich das?
Ich habe einen Typ xyz und eine Funktion die einen Zeiger auf eben diese Typ zurück liefert. Nun möchte ich aber evtl. mehr als ein Ergebnis zurück liefern, also hab ich gedacht geb ich ein Array zurück, was im Grunde ja das gleiche wie ein Zeiger ist.
Anbei ein Beispiel das funktioniert. Was mich aber stört ist das ich mit negativen Indizes darauf zugreifen muss. Hat jemand ne Idee wie ich das anders machen kann, oder so hinbekomme das Element 1 auch per Index 0 zugreifbar ist?
Wenn ich ein
Code: Alles auswählen
t--
t--
Code: Alles auswählen
class Test {
private:
public:
__int32 x32;
__int64 x64;
double d;
float f;
Test() {
x32 = 0;
x64 = 0;
d = 0;
f = 0;
}
protected:
};
#define ANZ 3
int main(char *argv, int argc) {
Test *t;
t = new Test[sizeof(Test)*ANZ];
for (int i = 1; i <= ANZ; i++) {
t->d = i + 2.234;
t->x32 = i;
if (i != ANZ) {
t++;
}
}
//t[0] 3. Element
//t[-1] 2. Element
//t[-2] 1. Element
return 0;
}