Jak przekazać wskaźnik przez referencję?

0

Mam wskaźnik na pierwszy element listy, który przekazuję do funkcji

asd(typ *wskaznik)

. Mogę w niej normalnie operować na elementach wskazywanych przez wskaźnik i po wyjściu z funkcji jest wszystko jest zapisane, ale jeżeli wewnątrz funkcji napiszę wskaznik = costam->nastepny

 to wskażnik będzie pokazywał na co innego tylko wewnątrz funkcji, a poza nią już nie. Zmieniłem * na & w definicji funkcji, ale wtedy program się nie kompiluje, bo nie można wtedy pisać <code class="cpp">wskaznik->cośtam

.

1

Możesz przekazać wskaźnik przez referencję:

void foo(int*& ptrRef){
    ptrRef = nullptr;
}

Albo przez wskaźnik:

void foo(int** ptrRef){
    *ptrRef = nullptr;
}
0

Dzięki wielkie. Pierwszy kod przetestowany i to jest czego chciałem.

1

Czasami warto opakować wskaźnik w strukturę, np:

struct list { node *head; };
void foo(list &lst) { lst.head=...; }
0

Witam,

Czy jeśli przekażę do funkcji przez referencję wskaźnik dynamiczny to mogę go tam zniszczyć instrukcją delete?

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