fehler in meiner int* fkt.
-
ich wollt in meiner fkt. einen simplen int-wert zurückgeben oder einen logischen nullpointer! da true und false leider nicht in frage kommen, aber ich bekomm leider einen fehler

template <class T> int *xxx<struct>::_search_(int stelle) { T *s; int temp; int *p; for(unsigned int i = 0; i < index; i++) { s = &array[i]; if(s->pos == stelle) { temp = i; p = &temp; } else p = NULL; } return *p; }mein compiler zickt

invalid conversion from `int' to `int*'
-
oh, habs gemerkt, sry
-
igi schrieb:
template <class T> int *xxx<struct>::_search_(int stelle) // ? { // ... temp = i; p = &temp; // dieses objekt existiert nach dem return nicht mehr // ... return p; // *p dereferenziert und liefert den wert }
-
wie terraner bereits geschrieben hat geht die rückgabe von &temp nicht. an deiner stelle würde ich als rückgabetyp int anstatt int* nehmen und i zurückgeben, oder -1 falls die gesuchte stelle nicht gefunden wurde. das ist in solchen fällen die übliche methode.