Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc oko malloc

[es] :: C/C++ programiranje :: C/C++ za početnike :: Pomoc oko malloc

[ Pregleda: 2211 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Brolly

Član broj: 66668
Poruke: 363
*.dialup.neobee.net.



Profil

icon Pomoc oko malloc17.09.2006. u 11:48 - pre 197 meseci
Ne znam tacno kako funkcionise funkcija i sta zapravo radi, ali sta znaci ovo:

Tucenik *pokazivac = NULL;

if(pokazivac = (Tucenik *) malloc(sizeof(Tucenik)) == NULL)
{
printf("Nije dobro alocirana memorija!! "),
return;
}
free(pokazivac);

1. Sta znaci (Tucenik *)?! Nema nikakve funkcije s leve strane, a stoji samo po sebi u zagradi, i jos uz to zvezdica je s desne strane a ne s leve?

2. Za cega sluzi malloc? Ovakvo koriscenje zagrada sam primetio samo kada je ta funkcija u upotrebi, a njeno zaglavlje je:

void *malloc(size_t size);

???
...
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Pomoc oko malloc17.09.2006. u 14:15 - pre 197 meseci
Cast operator.
pokazivac na void (void*) se pretvara u pokazivac na Tucenik (Tucenik*).
 
Odgovor na temu

Au197/79
Zlatan Kadragić
Minhen

Član broj: 3556
Poruke: 772
*.beotel.net.

Sajt: aurelije.blogspot.com


+47 Profil

icon Re: Pomoc oko malloc17.09.2006. u 14:23 - pre 197 meseci
1. Tucenik je tip podatka (obično je neka struktura (slog, zapis))
2. malloc (od memory allocation) pravi memorijski prostor na heap-u, odnosno dinamički alocira memoriju
funkciji se šalje veličina potrebnog memo prostora, a ona vraća pokazivač na bilo šta, što se piše sa: void *. Sa tim pokazivačem ne možemo ništa pametno raditi, tj. ne možemo pristupiti vrednosti na koju pokazuje jer ne znamo na šta pokazuje (pokazuje na bilo šta). Zato se on konvertuje u pokazivač na odgovarajući tip. U ovom slučaju tip je Tucenik pa se void * konvertuje u Tucenik *, a to se radi tako što se ispred vrednosti koja se konvertuje stavi "(" novi_tip ")" u ovom slučaju (Tucanik *).
Bolje džaba ležat nego džaba radit.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Pomoc oko malloc

[ Pregleda: 2211 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.