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

Gdje je razlika??

[es] :: Pascal / Delphi / Kylix :: Gdje je razlika??

[ Pregleda: 1172 | Odgovora: 4 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

edmir
Edmir Kovac
Gorazde

Član broj: 13989
Poruke: 49
*.as36.go.bih.net.ba.

Sajt: http:\\edmirkovac.netfirm..


Profil

icon Gdje je razlika??01.10.2004. u 14:35

type Buffer=array[0..1000000] of byte; b:buffer; je Ok
type Buffer=array[0..2000000] of byte; b:buffer; javlja stack overflow
Zasto?
Ovaj mi buffer traba da u njega upisujem dio file-a koji dijelim
i treba da je 1440000 ali samo na 1000000(1MB otprilike) radi dobro.
Cini mi se da sam ovo isto nekad radio i bilo je ok ali .... ne znam.
Kova
01.10.2004. u 14:35 

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 614
*.zaslon-telecom.si.



Profil

icon Re: Gdje je razlika??01.10.2004. u 14:55
Project -> Options -> Linker -> MemorySizes -> MaxStackSize sa $00100000 (1 mb) prebaci na $00200000 (2 mb) i to ce da radi posao.

Samo nisam siguran koliko je to resenje lepo i prakticno (imati toliko mnogo podataka na steku).

lp, ss
When something is hard to do, then it's not worth doing.
01.10.2004. u 14:55 

edmir
Edmir Kovac
Gorazde

Član broj: 13989
Poruke: 49
*.as36.go.bih.net.ba.

Sajt: http:\\edmirkovac.netfirm..


Profil

icon Re: Gdje je razlika??01.10.2004. u 20:54
Havla Saša,to je rješenje.
Ma lakše mi je tako da imam komade veličine diskete nego da ih spajam da bih dobio tu veličinu.
Kova
01.10.2004. u 20:54 

morlic
Milos Orlic
Beograd

Moderator
Član broj: 6081
Poruke: 731
*.225.EUnet.yu



Profil

icon Re: Gdje je razlika??01.10.2004. u 22:26
Koristi TMemoryStream ili TFileStream. Ovo sa ogromnim baferom je nekako trapavo (izvini na izrazu)
01.10.2004. u 22:26 

Rapaic Rajko
programer, Grappolo
Bgd

Član broj: 4105
Poruke: 377
217.119.242.*



Profil

icon Re: Gdje je razlika??05.10.2004. u 09:43
A ovako nesto:

Code:

type
  TBigArray = array[0..3000000] of byte;
  PBigArray = ^TBigArray;

var
  MyBigArray: PBigArray;
  abyte: byte;

begin
  MyBigArray := nil;
  GetMem(MyBigArray, 2000000);
  ...
  MyBigArray^[0] := 15;      // ovo je OK
  abyte := MyBigArray^[0];  // i ovo takodje
  ...
  abyte := MyBigArray^[2500000]; // ovo cita memoriju koja NIJE tvoja
  MyBigArray^[2500000] := 55; // ovo pise po memoriji koja NIJE tvoja
  ...
  abyte := MyBigArray^[3000100]; // e, ovde radi 'range checking' - ako je ukljucen
  ...
  FreeMem(MyBigArray);
end;



Na ovaj nacin, array je alociran na heap-u. Heap je dinamicka memorija, i sistem ce ti je dati koliko god ima (citaj: virtualna memorija - prostor na disku koji emulira memoriju). Jedino sto moras da pazis da ne prekoracis indeks (vidi gore code).

Rajko
05.10.2004. u 09:43 

[es] :: Pascal / Delphi / Kylix :: Gdje je razlika??

[ Pregleda: 1172 | Odgovora: 4 ]

Postavi temu Odgovori

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