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

Velicina marice int MAT[max_x][max_y] ??

[es] :: C++ programiranje :: C++ za početnike :: Velicina marice int MAT[max_x][max_y] ??

[ Pregleda: 545 | Odgovora: 8 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

lazuz

Član broj: 162975
Poruke: 9
212.200.195.*



Profil

icon Velicina marice int MAT[max_x][max_y] ??17.11.2007. u 02:33

Code:

int MAT[max_x][max_y];


koliko veliki mogu da budu brojevi max_x i max_y?

Kada stavim ovako program zakuca:

Code:

int MAT[1024][1024];


probao sam da vrednosti smanjujem za duplo i proradilo je tek na :

Code:

int MAT[128][128];


koji je maksimum velicine matrice?
17.11.2007. u 02:33 

glorius
Damir Nikolic
Developer, Seavus D.O.O.
YU

Član broj: 4366
Poruke: 242
212.200.234.*



Profil

icon Re: Velicina marice int MAT[max_x][max_y] ??17.11.2007. u 17:24
Tu velicinu memorije moras da alociras....

int * MAT = new int[1024*1024]

Pa, preko aritmetike pointera da pristupas elementima...

Mislim da se, promenljiva, kada se definise kao int MAT[1024][1024], stavlja na stek, koji je ogranicen tako da dolazi do prekoracenja te memorije...

Na gornji nacin ces y redu i x koloni pristupati ovako:

Code:

int Vrednost(int x, int y)
{
        return MAT[y*1024 + x];  // ako ti MAT nije globalna promenljiva onda ces je predati funkciji
}






EOF
17.11.2007. u 17:24 

perun_
Nemanja Andjelkovic
Banglades

Član broj: 151779
Poruke: 110
212.62.55.*

Sajt: 127.0.0.1


Profil

icon Re: Velicina marice int MAT[max_x][max_y] ??18.11.2007. u 00:02
Meni radi sa niz[1024][1024]. Koliko ti, prijatelju, imas RAM-a?

@glorius Ako vec radi sa pokazivacima, onda nekako logicnije da odradi sa
Code:
int** niz

Zar ne? A moze mu pristupati i preko indeksiranja operatorom [], kao i preko dereferenciranja i operatora +...
Ne treba ciljati u metu vec metati u cilj
18.11.2007. u 00:02 

lazuz

Član broj: 162975
Poruke: 9
91.150.110.*



Profil

icon Re: Velicina marice int MAT[max_x][max_y] ??18.11.2007. u 13:01
Hvala momci na odgovorima, pokusacu oba nacina.

p.s. imam 512 MB rama
18.11.2007. u 13:01 

perun_
Nemanja Andjelkovic
Banglades

Član broj: 151779
Poruke: 110
212.62.55.*

Sajt: 127.0.0.1


Profil

icon Re: Velicina marice int MAT[max_x][max_y] ??18.11.2007. u 13:40
Onda je nemoguce da ne moze. Hajde ostavi kod koji "zapinje". Mogao bi reci i koju gresku ti javlja. Ako nije
Code:
segmentation fault
onda je greska verovatno druge prirode..
Ne treba ciljati u metu vec metati u cilj
18.11.2007. u 13:40 

osmania
Wien

Član broj: 26316
Poruke: 292
*.20.11.vie.surfer.at.



Profil

icon Re: Velicina marice int MAT[max_x][max_y] ??18.11.2007. u 14:20
ne znam mozda liku ne treba pointeri da se sve to radi, mozda moa raditi tako reci preko for petlje,
jer ja imam na faxu programiranje i ljudi jendostavno ne daju da se koristi tako nesto napredno dok se ne dodje do tog gradiva....
cisto informativno za ove hakere koji ubijaju code...
18.11.2007. u 14:20 

lazuz

Član broj: 162975
Poruke: 9
77.46.175.*



Profil

icon Re: Velicina marice int MAT[max_x][max_y] ??18.11.2007. u 16:22
Proradilo je kad sam primenio ono sto je glorius napisao.

Citat:
perun_: Onda je nemoguce da ne moze. Hajde ostavi kod koji "zapinje". Mogao bi reci i koju gresku ti javlja. Ako nije
Code:
segmentation fault
onda je greska verovatno druge prirode..


ne izbacuje linker ili kompajler gresku, vec u toku rada programa - kad dodje do toga da se pozove funkcija u kojoj sam napisao sporni red.

U svakom slucaju problem je resen

Hvala glorius i perun_ na pomoci


p.s. imam jos jedno pitanje, jel treba da obrisem niz iz memorije na kraju te funkcije u kojoj sam koristio ovu promenjivu?

Kako se to radi:

Code:

delete [] MAT;



ili


Code:

delete MAT;


posto i jedno i drugo hoce da kompajlira.
18.11.2007. u 16:22 

perun_
Nemanja Andjelkovic
Banglades

Član broj: 151779
Poruke: 110
212.62.55.*

Sajt: 127.0.0.1


Profil

icon Re: Velicina marice int MAT[max_x][max_y] ??18.11.2007. u 16:49
Code:

delete [] MAT;


delete MAT bi koristio kada bi pokazivac MAT pokazivao na samo jedan objekat (recimo int). U ovom slucaju ti imas vise (1024) pokazivaca, i svaki od njih pokazuje na niz od 1024 elementa. Ukoliko bi uradio samo delete MAT, iz memorije dealocirao bi samo prvi pokazivac, koji pokazuje na prvih 1024 elementa, odnosno samo prvu vrstu iz tvoje matrice.. Nadam se da sam iole razumljivo ovo objasnio?
P.S. Nema na cemu!
Ne treba ciljati u metu vec metati u cilj
18.11.2007. u 16:49 

lazuz

Član broj: 162975
Poruke: 9
77.46.175.*



Profil

icon Re: Velicina marice int MAT[max_x][max_y] ??18.11.2007. u 17:37
Bio si vrlo jasan. thx
18.11.2007. u 17:37 

[es] :: C++ programiranje :: C++ za početnike :: Velicina marice int MAT[max_x][max_y] ??

[ Pregleda: 545 | Odgovora: 8 ]

Postavi temu Odgovori

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