Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

Dinamicka dodjela memorije (objasnjenje gradiva)
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
nemanja065
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 05. 01. 2007. (22:48:40)
Postovi: (23)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 17:56 pon, 22. 12. 2008    Naslov: Dinamicka dodjela memorije Citirajte i odgovorite

Prilikom rezervacije memorijskog prostora za neki string koristi se funkcija (char*)malloc(n+1) gdje je n broj znakova. Nije mi jasno sto se dodaje ovo 1 a kod integera ne. Kolika je velicina u bajtovima char i int?
Prilikom rezervacije memorijskog prostora za neki string koristi se funkcija (char*)malloc(n+1) gdje je n broj znakova. Nije mi jasno sto se dodaje ovo 1 a kod integera ne. Kolika je velicina u bajtovima char i int?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Milojko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52)
Postovi: (453)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
17 = 68 - 51
Lokacija: Hilbertov hotel

PostPostano: 18:10 pon, 22. 12. 2008    Naslov: Citirajte i odgovorite

char je veličine jednog bajta iliti osam bita, int je četiri bajta, odnosno 32 bita. int je za pisanje cijelih brojeva sa predznakom. char upisuje samo jedan znak. ovo n+1, mislim da se tu radi o onom nulcharu. taj, nul karakter (odnosno, nul-znak) ide na kraju svakog stringa. normalno, to se ne piše kad upisuješ string, neg to compiler tak učita, tak nešt. nisam sto posto siguran, al, znam da ide i taj nul-char.
ili možda ne...........
char je veličine jednog bajta iliti osam bita, int je četiri bajta, odnosno 32 bita. int je za pisanje cijelih brojeva sa predznakom. char upisuje samo jedan znak. ovo n+1, mislim da se tu radi o onom nulcharu. taj, nul karakter (odnosno, nul-znak) ide na kraju svakog stringa. normalno, to se ne piše kad upisuješ string, neg to compiler tak učita, tak nešt. nisam sto posto siguran, al, znam da ide i taj nul-char.
ili možda ne...........



_________________
Sedam je prost broj Smile

Bolonja je smeće i to pod hitno treba mijenjat
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
nemanja065
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 05. 01. 2007. (22:48:40)
Postovi: (23)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 18:28 pon, 22. 12. 2008    Naslov: Citirajte i odgovorite

Jeste to, to sam mislio al nisam bio siguran, nisam jos siguran sta ovo znaci (int*) ili (char*)...hvala
Jeste to, to sam mislio al nisam bio siguran, nisam jos siguran sta ovo znaci (int*) ili (char*)...hvala


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 18:55 pon, 22. 12. 2008    Naslov: Citirajte i odgovorite

Pretvaranje tipova; [tt]malloc()[/tt] vraća netipizirani pointer ([tt]void*[/tt]), pa treba compileru reci da se to smije pridruziti varijabli koja je tipa [tt]int*[/tt] ili [tt]char*[/tt]. :)

Baci oko na skriptu iz Programiranja 2 (na webu je); tamo su te stvari objasnjene. 8)
Pretvaranje tipova; malloc() vraća netipizirani pointer (void*), pa treba compileru reci da se to smije pridruziti varijabli koja je tipa int* ili char*. Smile

Baci oko na skriptu iz Programiranja 2 (na webu je); tamo su te stvari objasnjene. Cool



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 0:15 uto, 23. 12. 2008    Naslov: Citirajte i odgovorite

[quote="vsego"]Pretvaranje tipova; [tt]malloc()[/tt] vraća netipizirani pointer ([tt]void*[/tt]), pa treba compileru reci da se to smije pridruziti varijabli koja je tipa [tt]int*[/tt] ili [tt]char*[/tt]. :)[/quote]
Ako cemo biti do kraja precizni, ta eksplicitna konverzija nije nuzna, jer C dopusta implicitnu konverziju iz [tt]void*[/tt] u bilo koji drugi pointerski tip. Razlog zasto se obicno stavlja eksplicitna konverzija kod poziva malloca je to sto na taj nacin dobivas dodatnu provjeru korektnosti tipova, tj. kompajler ce te upozoriti ako napises nesto ovakvo
[code:1]p = (double*) malloc(n*sizeof(double));[/code:1]
u slucaju kada je [tt]p[/tt] bilo kojeg tipa razlicitog od [tt]double*[/tt] i [tt]void*[/tt].

S druge strane, ako napises
[code:1]p = malloc(n*sizeof(double));[/code:1] onda ce sve proci bez ikakvog upozorenja dok god je [tt]p[/tt] nekakav pointer.
vsego (napisa):
Pretvaranje tipova; malloc() vraća netipizirani pointer (void*), pa treba compileru reci da se to smije pridruziti varijabli koja je tipa int* ili char*. Smile

Ako cemo biti do kraja precizni, ta eksplicitna konverzija nije nuzna, jer C dopusta implicitnu konverziju iz void* u bilo koji drugi pointerski tip. Razlog zasto se obicno stavlja eksplicitna konverzija kod poziva malloca je to sto na taj nacin dobivas dodatnu provjeru korektnosti tipova, tj. kompajler ce te upozoriti ako napises nesto ovakvo
Kod:
p = (double*) malloc(n*sizeof(double));

u slucaju kada je p bilo kojeg tipa razlicitog od double* i void*.

S druge strane, ako napises
Kod:
p = malloc(n*sizeof(double));
onda ce sve proci bez ikakvog upozorenja dok god je p nekakav pointer.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan