• 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
223 wizyt
pytanie zadane 21 listopada 2017 w C i C++ przez coderCpp93 Obywatel (1,860 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 (144,520 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,940 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ź 81 wizyt
0 głosów
2 odpowiedzi 105 wizyt
pytanie zadane 21 lipca w C i C++ przez Nowacx02 Użytkownik (740 p.)
0 głosów
1 odpowiedź 71 wizyt
pytanie zadane 17 marca w C i C++ przez CurryMan Nowicjusz (170 p.)
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

53,174 zapytań

96,434 odpowiedzi

197,514 komentarzy

25,973 pasjonatów

Przeglądających: 249
Pasjonatów: 16 Gości: 233

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.

...