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

Vezane liste (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
math_student
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 02. 11. 2012. (16:38:58)
Postovi: (18)16
Spol: žensko
Sarma = la pohva - posuda
= 1 - 0

PostPostano: 23:16 sri, 29. 5. 2013    Naslov: Vezane liste Citirajte i odgovorite

pitanje vezano za vezane liste :)
cesto unutar programa u blokovima deklariramo neke pomocne pokazivace, npr. neki "temp" kad brisemo element liste, i nakon sto obavimo to sto smo htjeli, napravimo free(temp)..zbunjuje me to kako oslobadjamo memoriju koju nismo alocirali ili realocirali(malloc-om/realloc-om), zasto je to potrebno?
pitanje vezano za vezane liste Smile
cesto unutar programa u blokovima deklariramo neke pomocne pokazivace, npr. neki "temp" kad brisemo element liste, i nakon sto obavimo to sto smo htjeli, napravimo free(temp)..zbunjuje me to kako oslobadjamo memoriju koju nismo alocirali ili realocirali(malloc-om/realloc-om), zasto je to potrebno?


[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: 13:51 čet, 30. 5. 2013    Naslov: Re: Vezane liste Citirajte i odgovorite

[quote="math_student"]pitanje vezano za vezane liste :)
cesto unutar programa u blokovima deklariramo neke pomocne pokazivace, npr. neki "temp" kad brisemo element liste, i nakon sto obavimo to sto smo htjeli, napravimo free(temp)..zbunjuje me to kako oslobadjamo memoriju koju nismo alocirali ili realocirali(malloc-om/realloc-om), zasto je to potrebno?[/quote]

Nije istina da se oslobađa memorija koja nije alocirana. [tt]free[/tt] oslobađa memoriju na koju pokazuje pointer proslijeđen kao argument funkcije. Prema tome, nije bitno kako se taj pointer zove, nego na što pokazuje, a u slučaju brisanja iz liste argument od [tt]free[/tt] pokazuje na čvor koji smo upravo izbacili iz liste. Memorija za izbačeni čvor je u nekom trenutku bila dinamički alocirana, pa sad kad nam više ne treba, moramo osloboditi tu memoriju.

Nadam se da sam pomogao.
math_student (napisa):
pitanje vezano za vezane liste Smile
cesto unutar programa u blokovima deklariramo neke pomocne pokazivace, npr. neki "temp" kad brisemo element liste, i nakon sto obavimo to sto smo htjeli, napravimo free(temp)..zbunjuje me to kako oslobadjamo memoriju koju nismo alocirali ili realocirali(malloc-om/realloc-om), zasto je to potrebno?


Nije istina da se oslobađa memorija koja nije alocirana. free oslobađa memoriju na koju pokazuje pointer proslijeđen kao argument funkcije. Prema tome, nije bitno kako se taj pointer zove, nego na što pokazuje, a u slučaju brisanja iz liste argument od free pokazuje na čvor koji smo upravo izbacili iz liste. Memorija za izbačeni čvor je u nekom trenutku bila dinamički alocirana, pa sad kad nam više ne treba, moramo osloboditi tu memoriju.

Nadam se da sam pomogao.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
math_student
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 02. 11. 2012. (16:38:58)
Postovi: (18)16
Spol: žensko
Sarma = la pohva - posuda
= 1 - 0

PostPostano: 16:30 čet, 30. 5. 2013    Naslov: Citirajte i odgovorite

da, hvala puno :D
da, hvala puno Very Happy


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


Pridružen/a: 09. 10. 2010. (16:35:36)
Postovi: (24E)16
Sarma = la pohva - posuda
-5 = 42 - 47

PostPostano: 19:44 čet, 30. 5. 2013    Naslov: Citirajte i odgovorite

Slicno pitanje:

npr.

typedef struct_ elemen* lista;

lista prvi=NULL, novi;

Kreiramo nove elemente liste i ubacujemo u listu prvi.
Zasto na kraju oslobađamo (brisemo) samo listu prvi?
Listu novi smo alocirali, zar ne bi trebali i nju osloboditi na kraju?

To je primjer zadatka kojeg je profesor rijesio.
Slicno pitanje:

npr.

typedef struct_ elemen* lista;

lista prvi=NULL, novi;

Kreiramo nove elemente liste i ubacujemo u listu prvi.
Zasto na kraju oslobađamo (brisemo) samo listu prvi?
Listu novi smo alocirali, zar ne bi trebali i nju osloboditi na kraju?

To je primjer zadatka kojeg je profesor rijesio.


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


Pridružen/a: 02. 11. 2012. (16:38:58)
Postovi: (18)16
Spol: žensko
Sarma = la pohva - posuda
= 1 - 0

PostPostano: 20:30 čet, 30. 5. 2013    Naslov: Citirajte i odgovorite

jer je novi sad unutar liste na koju pokazuje prvi
jer je novi sad unutar liste na koju pokazuje prvi


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


Pridružen/a: 09. 10. 2010. (16:35:36)
Postovi: (24E)16
Sarma = la pohva - posuda
-5 = 42 - 47

PostPostano: 20:33 čet, 30. 5. 2013    Naslov: Citirajte i odgovorite

[quote="math_student"]jer je novi sad unutar liste na koju pokazuje prvi[/quote]

Logicno da. Hvala.
math_student (napisa):
jer je novi sad unutar liste na koju pokazuje prvi


Logicno da. Hvala.


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


Pridružen/a: 30. 11. 2012. (16:36:41)
Postovi: (10)16
Sarma = la pohva - posuda
= 6 - 5

PostPostano: 19:45 pet, 31. 5. 2013    Naslov: Citirajte i odgovorite

[quote="frutabella"]Slicno pitanje:

npr.

typedef struct_ elemen* lista;

lista prvi=NULL, novi;

Kreiramo nove elemente liste i ubacujemo u listu prvi.
Zasto na kraju oslobađamo (brisemo) samo listu prvi?
Listu novi smo alocirali, zar ne bi trebali i nju osloboditi na kraju?

To je primjer zadatka kojeg je profesor rijesio.[/quote]

Uzmi u obzir, ako je novi element koji dodaješ nastao alociranjem memorije da će free(prvi) samo osloboditi prvi element, svi ostali koji su naknadno dodani u listu dodatnom alokacijom memorije(malloc) moraju biti naknadno oslobođeni.
Ništa ne govori funkciji free() da je ono što daješ lista i da bi trebalo otići po svim next-ovima i osloboditi.

Tako da, ako je takav bio primjer zadatka onda je oslobađanje izvedeno na pogrešan način.
frutabella (napisa):
Slicno pitanje:

npr.

typedef struct_ elemen* lista;

lista prvi=NULL, novi;

Kreiramo nove elemente liste i ubacujemo u listu prvi.
Zasto na kraju oslobađamo (brisemo) samo listu prvi?
Listu novi smo alocirali, zar ne bi trebali i nju osloboditi na kraju?

To je primjer zadatka kojeg je profesor rijesio.


Uzmi u obzir, ako je novi element koji dodaješ nastao alociranjem memorije da će free(prvi) samo osloboditi prvi element, svi ostali koji su naknadno dodani u listu dodatnom alokacijom memorije(malloc) moraju biti naknadno oslobođeni.
Ništa ne govori funkciji free() da je ono što daješ lista i da bi trebalo otići po svim next-ovima i osloboditi.

Tako da, ako je takav bio primjer zadatka onda je oslobađanje izvedeno na pogrešan način.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
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