Jakie korzyści daje zastosowanie wskaźnikow na struktury ?

0

Witam.
Może mi ktoś objaśnić jakie korzyści daje zastosowanie wskaźników na struktury, oprócz tego, że po przekazaniu do funkcji uzyskujemy szybszy dostęp do nich i oszczędzamy pamięc, bo nie przekazujemy ich kopii a tylko adres do nich ?

0

Hmm, w przeciwieństwie do referencji widzisz iż wywołanie funkcji z przekazanym pointerem może modyfikować to, na co wskazuje wskaźnik. Poza tym, dynamiczna alokacja pamięci tylko na wskaźnikach, brak wywołania konstruktora kopiującego, modyfikacja obiektu zewnętrznego.

0

@Pointer po pierwsze to przekazujesz wtedy ORYGINAŁ a nie kopię obiektu i możesz go modyfikowac. Po drugie mozesz wtedy łatwo używać obiektów ze sterty a nie ze stosu.

0
Pointer napisał(a):

szybszy dostęp do nich i oszczędzamy pamięc, bo nie przekazujemy ich kopii a tylko adres do nich ?

To akurat jest wątpliwe. Wskaźnik trzeba wyłuskać (nie cierpię tego słowa) więc dostęp wcale nie jest szybszy. Szybsze powinno być samo przekazanie, bo wskaźnik zazwyczaj jest dużo mniejszy niż cała ta struktura. Kompilatory jednak bardzo się starają, żeby uniknąć niepotrzebnego kopiowania, więc to nie musi być takie oczywiste. (Poczytaj o copy elision)

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