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

Dinamicki objekti - pitanje?

[es] :: C/C++ programiranje :: C/C++ za početnike :: Dinamicki objekti - pitanje?

[ Pregleda: 2184 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

SuperC

Član broj: 120719
Poruke: 124
*.9.14.vie.surfer.at.



Profil

icon Dinamicki objekti - pitanje?18.01.2007. u 20:48 - pre 210 meseci
Zanima me sljedece:

zasto je u prvom primjeru, na pitanje koliko se po jednom pozivu funkcije test, netocno daje/oslobadja Byte-a, kao tacan odgovor navodi 4 Bytes, a drugom na isto pitanje kao tacan odgovor navodi 8 Bytes. Evo primjera:

Primjer1:

Code:
void test()
{
int *x;
for (int i=1; i<3; i++)
x= new int [i];

delete [] x;
}



Primjer2:

Code:
void test()
{
int *x;
for (int i=2; i>0; i--)
x= new int [i];

delete [] x;
}


[Ovu poruku je menjao SuperC dana 18.01.2007. u 23:52 GMT+1]

[Ovu poruku je menjao SuperC dana 18.01.2007. u 23:52 GMT+1]
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
89.190.198.*

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: Dinamicni objekti - pitanje?18.01.2007. u 21:15 - pre 210 meseci
Primer 1:
i=1: pravi niz od 1 int (pokazivač na njega biva izgubljen)
i=2: pravi niz od 2 int
i=3: break

neoslobođeno u toku programa: 1 int = 4 bytes, uglavnom

Primer 2:
i=2: pravi niz od 2 int (pokazivač na njega biva izgubljen)
i=1: pravi niz od 1 int
i=0: brek

neoslobođeno u toku programa: 2 int = 8 bytes, uglavnom
Ipak se ++uje.
 
Odgovor na temu

SuperC

Član broj: 120719
Poruke: 124
*.9.14.vie.surfer.at.



Profil

icon Re: Dinamicni objekti - pitanje?18.01.2007. u 21:24 - pre 210 meseci
arhg !?@#$%^ (do mene)

hvala puno :)

znaci, potrebno je pogledati koja je vrijednost niza i pomnoziti je, ja sam mislio da se iste vrijednosti dodjeljuju po jednoj petlji, a zapravo se funkcija test poziva samo jednom

a sta se desava, kada u zadatku nije niz, npr:

Code:

void test ()
{
int *x;
for (int i=0, i<3; i++){
x = new int;
delete x;
}
}


da li ce ovdje zato sto je nula biti rjesenje nula BYtes?
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
89.190.198.*

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: Dinamicni objekti - pitanje?18.01.2007. u 21:31 - pre 210 meseci
Za razliku od new int[...] koji pravi novi niz, new int pravi samo jedan element i vraća pokazivač na njega. Primeti i razliku kod brisanja:

delete [] x; -- se koristi kada x pokazuje na niz (pa i kada mu je dužina 1)
delete x; -- se koristi kada x pokazuje na jedan element

Znači ovde će biti napravljeno

(n = broj prolazaka kroz petlju) x (1 element)

a program oslobađa samo poslednji napravljeni. Znači ostaje n-1 neoslobođenih int.
Ipak se ++uje.
 
Odgovor na temu

SuperC

Član broj: 120719
Poruke: 124
*.9.14.vie.surfer.at.



Profil

icon Re: Dinamicni objekti - pitanje?18.01.2007. u 21:50 - pre 210 meseci
Ok. Misha, ti bi trebao biti profesor :)

Imam jos jedno pitanje, da li ovaj zadatak rjesavam kao rekurziju:

Code:

#include <iostream.h>
void main () {
int *ptr = new int [10];

for (int i=0; i<10; i++)
ptr [i] = i;

int *ip = ptr+9;

for (int i=0; i<10; i++)
cout << *ip--;

delete [] ptr;
}


odnosno prvo rjesenje mi je 0+9, zatim sta? dodjem na 10?!
 
Odgovor na temu

lucky

Član broj: 2032
Poruke: 57
..AT.HighSpeedADSL.beotel.net.

Jabber: lucky@elitesecurity.org


+1 Profil

icon Re: Dinamicki objekti - pitanje?19.01.2007. u 03:04 - pre 210 meseci
Niej ovo rekurzija i ne dodjes na 10!
Pokreni program pa ces i sam videti. ip ti zapravo pokazuje na ptr[9] i onda sa *ip-- u petlji stampas vrednosti niza od p[9] do p[0]. Znaci u obrnutom poretku u odnosu na onaj u kome su unete.
 
Odgovor na temu

SuperC

Član broj: 120719
Poruke: 124
*.9.14.vie.surfer.at.



Profil

icon Re: Dinamicki objekti - pitanje?19.01.2007. u 06:25 - pre 210 meseci
to sam mislio, samo sam se lose izrazio, znaci prvo ih unesem, u jednom redoslijedu i onda u obrnutom odstampam.

Moj program izbaci samo gotovo rjesenje. ne i korake. :(
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Dinamicki objekti - pitanje?19.01.2007. u 07:18 - pre 210 meseci
Citat:

...
#include <iostream.h>
...

Kad smo već kod ovoga, pogledaj ovde:
http://www.elitesecurity.org/t236691-0#1418274
(EDIT: Link koji valjda sada radi. Hvala Mali Misha)


[Ovu poruku je menjao X Files dana 19.01.2007. u 16:13 GMT+1]
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Dinamicki objekti - pitanje?

[ Pregleda: 2184 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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