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.


Anmelden zum Antworten