• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wskaźniki - zastosowania

+1 głos
313 wizyt
pytanie zadane 21 listopada 2017 w C i C++ przez coderCpp93 Bywalec (2,260 p.)
Witam. W czym dokładnie można stosować wskaźniki. Znam definicję wskaźnika, ale nie widzę, gdzie mógłbym go zastosować w własnych programach, po prostu po co go używać. Pozdrawiam.

4 odpowiedzi

+1 głos
odpowiedź 21 listopada 2017 przez the_danger Gaduła (4,800 p.)

W C wskaźniki miały głównie 2 zastosowania:

  • Przekazywanie oryginału zmiennej do funkcji
  • Dynamiczna alokacja pamięci

W nowoczesnym C++ie jednak odchodzi się od wskaźników, bo język zawiera lepsze mechanizmy powodujące mniej kłopotów. Do przekazywania oryginałów zmiennych do funkcji można użyć referencji a zamiast połączenia wskaźniki+new/delete używa się smart pointerów lub vectorów

+1 głos
odpowiedź 21 listopada 2017 przez Eryk Andrzejewski VIP (148,800 p.)
Oprócz tego, o czym wspomniał kolega wcześniej, dochodzi np. polimorfizm.
0 głosów
odpowiedź 21 listopada 2017 przez amb00 Obywatel (1,960 p.)

Wskaźniki umożliwiają jeszcze bezpośrednią manipulację pamięcią, co jest niezbędne, gdy piszesz jądro do jakiegoś systemu operacyjnego. Przykład: https://pl.wikibooks.org/wiki/Pisanie_OS/From_zero_to_hero#Piszemy_proste_j.C4.85dro_systemu.21

static char * video_fb=(char *)0xb8000; 
void putc(char c) 
{ 
*video_fb++=c; 
video_fb++; 
} 

void puts(char * s) 
{ 
for(;*s;) putc(*s++); 
} 

void start_kernel(void) 
{ 
puts("Hello World !!!"); 

for(;;); 
}

 

–2 głosów
odpowiedź 21 listopada 2017 przez Artek Mądrala (7,080 p.)
Dobry przykład to przekazywanie tablicy jako parametru funkcji. Parę lat temu jak programowałem w C++ to przekazanie dużej tablicy przez parametr mogło doprowadzić do przeładowania stosu(wartości poszczególnych komórek są kopiowane i wrzucane na stos). Nawet jeśli nie to i tak było to bardziej czasochłonne niż właśnie przekazanie wskaźnika do tablicy.
komentarz 22 listopada 2017 przez the_danger Gaduła (4,800 p.)

Parę lat temu jak programowałem w C++ to przekazanie dużej tablicy przez parametr mogło doprowadzić do przeładowania stosu

Zarówno w C jak i w C++ tablice nigdy nie były kopiowane podczas przekazywania ich do funkcji.  

Podobne pytania

0 głosów
1 odpowiedź 98 wizyt
0 głosów
2 odpowiedzi 115 wizyt
pytanie zadane 21 lipca w C i C++ przez Nowacx02 Użytkownik (820 p.)
0 głosów
1 odpowiedź 75 wizyt
pytanie zadane 17 marca w C i C++ przez CurryMan Nowicjusz (170 p.)
Porady nie od parady
Zadając pytanie postaraj się o poprawną pisownię i czytelne formatowanie tekstu.Kompozycja

56,493 zapytań

101,200 odpowiedzi

208,598 komentarzy

28,160 pasjonatów

Przeglądających: 235
Pasjonatów: 11 Gości: 224

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...