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

Gdje je razlika??

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

[ Pregleda: 3310 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

edmir
Edmir Kovac
Gorazde

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

Sajt: http:\\edmirkovac.netfirm..


Profil

icon Gdje je razlika??01.10.2004. u 14:35 - pre 237 meseci
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.
Kovac
 
Odgovor na temu

sasas
Saša Slavnić
radim za neke švabe

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



Profil

icon Re: Gdje je razlika??01.10.2004. u 14:55 - pre 237 meseci
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.
 
Odgovor na temu

edmir
Edmir Kovac
Gorazde

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

Sajt: http:\\edmirkovac.netfirm..


Profil

icon Re: Gdje je razlika??01.10.2004. u 20:54 - pre 237 meseci
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.
Kovac
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.225.EUnet.yu



+1 Profil

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

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 810
217.119.242.*



+62 Profil

icon Re: Gdje je razlika??05.10.2004. u 09:43 - pre 237 meseci
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
 
Odgovor na temu

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

[ Pregleda: 3310 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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