Sziasztok!
> A problemam az, hogy egy elem 2590 byte meretu, es kb. az 1200-adik
> ilyen elem foglalasakor Heap Overflow-val elszall a program. Pedig
> elvileg ilyenkor mind a 32 mega ram heap.
Bocsi,ha kicsit sokara,de en is csak az elmeletet tudtam.
Protected modban a Pascal mindel egyes lefoglalasnal uj blokkot fog lefoglani.
Ezert fogyott el a Heap.
Megoldas : Minel nagyobb blokkok lefoglalasa
Guci probald ki az alabbi programot , a vegen adott memo felszabaditasi hiba
( ertek mod 960 = 0 ) nem a program hibaja ( 30 ill 30+1 blokkonkent vagy az rt
m,
vagy a dpmi... lefoglal meg 960 byte-ot, de amikor a prg kilep fel is szabaditj
a. )
(*************)
{$A+,B-,D+,E-,F+,G+,I+,L+,N-,O-,P-,Q+,R+,S+,T-,V+,X+,Y+}
{ Nalam ezek a szokasos direktivak }
uses crt;
type
MemdatT=record
seg : word;
ofs : word;
end; { 8 byte }
MemArrT=array[0..8189] of MemDatT;
{ total 65520 byte // 65535-nel nagyobb blokkot nem lehet lefoglalni egyben.
}
MemArrP=^MemArrT;
DataT=array[1..2590] of byte;
DataArrT=array[0..64750] of byte; { 25 * 2590 (+1 dbszam) }
var
MemArr : MemArrP;
DataSegdb,DataCount : word;
{--} function ReadData(var R : DataT) : boolean;
var i : word;
.
(**************}
--
Csa'
SeBy
|
Hi CODERek !
---------------------
Eloszor is irok, mivel mar az agyamra megy
az a sirankozas, amely itt a korulottem levo
haveri tarsasagban folyik, konkretan a
2000.ev eljovetelerol van szo
Ugye egy programozo az tudja (?), hogy
a BIOS-ban levo Date/Time byte-kiosztast
ugy gondoltak at, hogy az 1980- tol 2099-ig
biztonsagos legyen.
Ezt mar a 3.30-as DOS verzio is tamogatta.
Szoval PC alapu gepeken nem latom azt a
problemat, amelyet itt igen sokat felnagyitanak
a rendszer karosodasatol a gep rombadoleseig.
De nezzuk csak a BIOS megszakitast:
INT 1Ah - datumlekerdezes
Vagy a DOS megszakitast:
INT 2Ch - datumlekerdezes
A Peter Norton - Az IBM PC programozasa
c.konyv vilagosan kimondja a datumrol szolo erveket,
miszerint 2000-ben nem tortenik semmi CRASH !
Laci. (csak ugy megjegyeztem)
|
Udv
minden HIX Coder olvasonak. Lenne par kerdesem:
#1: Hogyan lehet megtudni, hogy egy Win3.1-es programhoz
milyen DLL-ek kellenek?
#2: Programozas oran (Pascal) egy OtodOlo-szeru jatekot
kellene irni, de ugy, hogy a gep ellen lehessen
jatszani. Na en a gep algoritmusara lennek kivancsi.
Ha valaki irt mar ilyent, az kerem irja meg, vagy
kuldjon egy kisebb sourcet.
#3: Soxor lattam mar introkban, hogy egy 320x200-as
kepernyore mindefelet kiirnak, raadasul ez meg
hullamzik is, es alig tobb mint 100 byte. Tehat: hogy
lehet irni 13h modban, Pascalban a kepernyore???
#4: probalt mar _valaki valamit_ csinalni pascalban
internettel kapcsolatban? egy szoveges irc klienst
szeretnek irni
Elore is kosz a valaszokat
Bye,
SzaSza
--
--- www.extra.hu/szasza --- botnet:
|