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

Wskaźniki - zastosowania

Ultraszybki serwer VPS NVMe BIZNES
+1 głos
161 wizyt
pytanie zadane 21 listopada 2017 w C i C++ przez coderCpp93 Użytkownik (950 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 (3,480 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 (128,360 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,850 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 Bywalec (2,680 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 (3,480 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
2 odpowiedzi 125 wizyt
pytanie zadane 14 września 2017 w C i C++ przez Karol.99 Początkujący (390 p.)
0 głosów
3 odpowiedzi 102 wizyt
pytanie zadane 23 lipca 2017 w C i C++ przez seba Dyskutant (7,650 p.)
0 głosów
1 odpowiedź 153 wizyt
pytanie zadane 29 czerwca 2017 w C i C++ przez Jakub 0 Mądrala (6,600 p.)
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.
Ciekawy innych porad? Odwiedź tę stronę!

44,251 zapytań

84,047 odpowiedzi

167,336 komentarzy

21,161 pasjonatów

Przeglądających: 173
Pasjonatów: 6 Gości: 167

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.

...