====== 3. přednáška ====== =====Parametry funkce main===== K alokaci paměti slouží v jazyce C příkaz ''malloc''. Má jeden parametr - velikost paměti - a vrací pointer na začátek přidělené paměti nebo NULL, pokud se nepodařilo paměť přidělit. Přidělený pointer ukazuje na hodnotu typu ''void''. Proto je třeba jej přetypovat na správnou hodnotu. Dynamické pole a pointer se alokují stejně, u pole se akorát musí velikost položky vynásobit počtem položek. Paměť se uvolňuje příkazem ''free'', který má jako parametr pointer na paměť, kterou chcenme uvolnit. Tento pointer má ukazovat na ''void'', proto je nutné proměnnou přetypovat. Po uvolnění paměti však obsah proměnné zůstává zachován (proměnná ovšem již ukazuje do nepřidělené paměti), proto je vhodné její hodnotu změnit na ''NULL''. #include int main(void) { int *p, *pole, i; p = (int*) malloc(sizeof(int)); pole = (int*) malloc(sizeof(int)*10); *p = 5; for(i=0; i<10; i++) *(pole+i) = (i*2)%5; for(i=9; i>=0; i--) printf("%d, ", *(pole+i)); printf("\np = %d\n", *p); free ((void*) pole); free ((void*) p); pole=NULL; p=NULL; return 0; } [[start|Zpět]]