11 Smerníky v jazyku C

Zdroj
ručne priradené
Pridané

Pozrieť na YouTube →

Preber si túto prednášku so svojou AI

Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.

Otvoriť AI: ChatGPT · Claude · Gemini

Zhrnutie prednášky

Prednáška vysvetľuje prácu so smerníkmi (pointermi) v jazyku C. Smerník je premenná, ktorá uchováva adresu inej premennej; definuje sa podobne ako ukazovaná premenná (napr. int *pa) a treba ho inicializovať, prípadne nastaviť na 0 (NULL). Operátor & vracia adresu premennej, operátor * (dereferencia) umožňuje čítať a zapisovať hodnotu na adrese, kam smerník ukazuje. Ukazuje sa výpis adresy cez printf s formátom %p a použitie smerníka v scanf bez operátora &. Druhá časť sa venuje dynamickej pamäti: malloc alokuje miesto na halde (s pretypovaním z void*), free ju uvoľní a smerník je po uvoľnení vhodné nastaviť na NULL, aby sa predišlo prístupu k neplatnej pamäti. Ak sa smerník presmeruje inam bez uvoľnenia, vzniká únik pamäte.

  • - Smerník je premenná uchovávajúca adresu a pri definícii sa inicializuje, prípadne hodnotou 0 (NULL).
  • - Operátor & vracia adresu premennej, ktorú možno priradiť smerníku.
  • - Operátor * (dereferencia) pristupuje k hodnote na adrese, kam smerník ukazuje; priamo priradiť číslo adrese (pa = 1) je chyba.
  • - Adresu možno vypísať cez printf s formátom %p; scanf pracuje so smerníkmi, takže pri smerníku sa & nepíše.
  • - Funkcia malloc alokuje pamäť na halde, vracia void*, preto sa pretypuje na požadovaný typ (int *).
  • - Dynamická premenná nemá identifikátor, pristupuje sa k nej len cez smerník, a musí sa uvoľniť funkciou free.
  • - Po free treba smerník nastaviť na NULL, inak hrozí pád programu pri prístupe k uvoľnenej pamäti.
  • - Presmerovanie smerníka bez uvoľnenia pamäte spôsobí jej stratu (únik pamäte).

Zhrnutie pripravené s pomocou AI z prepisu videa.