Zmiana adresu wskaźnika wewnątrz funkcji

0

witam

mam funkcje


void nowyAdresWskaznika(int * wskaznik,int & nowaWartosc){

	*wskaznik = nowaWartosc; 
	wskaznik = &nowaWartosc;

}

i po wykonaniu

	

nowyAdresWskaznika(intWskaznik,intWartosc2);

cout << "adres wskaznika " << intWskaznik << endl;
cout << *intWskaznik << endl<< endl; 

adres wskaznika sie nie zmienia

1

Bo wewnątrz funkcji pracujesz na KOPII tego wskaźnika. Możesz zmienić to na co on wskazuje ale jak chcesz zmienić wartość samego wskaźnika to musisz mieć

void nowyAdresWskaznika(int*& wskaznik,int & nowaWartosc){

albo

void nowyAdresWskaznika(int** wskaznik,int & nowaWartosc){
0

racja, no ja sie wlasnie zastanawialem dlaczego on na kopi pracuje skoro przekazuje wskaznik, bo wewnatrz funkcji wszystko dobrze przypisywal

dzieki:)

ale teraz nasuwa mi się pytanie, skoro zmieniam wartosc przypisana do wskaznika

 
void nowaWartoscWskaznikaPrzezReferencje(int *wskaznik,int &nowaWartosc){
	*wskaznik = nowaWartosc; 
}

to poprawnie zmienia mi wartosc wskaznika, a nie powinno zmienic na jego kopi ? tak jak w tym powyżej ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1