Newsgroup: it.comp.lang.pascal
Titolo: array troppo grande

Mi sapete dire come posso fare a dichiarare una matrice
array[1..640,1..480] of <qualsiasi tipo>?
Questa dichiarazione non funziona perchè supera i 64 k che si hanno a
disposizione per i programmi in pascal. Ho provato anche a usare i
puntatori senza nessun risultato.
Grazie
Ciao
ATTENZIONE! rimuovere NOSPAM per rispondere in e-mail

 ritardo
2 ore e 34 minuti :
Prova ad usare un array di 640 word e un file ad accesso casuale di
480 array di 640 word come supporto.
:-)Mi sapete dire come posso fare a dichiarare una matrice
:-)array[1..640,1..480] of <qualsiasi tipo>?
:-)Questa dichiarazione non funziona perchč supera i 64 k che si hanno a
:-)disposizione per i programmi in pascal. Ho provato anche a usare i
:-)puntatori senza nessun risultato.
:-)
:-)Grazie
:-)
:-)Ciao
:-)
:-)ATTENZIONE! rimuovere NOSPAM per rispondere in e-mail
:-)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
ATTENZIONE! Rimuovere "
riccar...@iol.it
"
dall'indirizzo email
Saluti by Riccardo
e-mail : 
riccar...@iol.it

 e-mail : 
riccar...@iol.it
Non c'è un modo per tenerlo in memoria?

 ATTENZIONE! rimuovere NOSPAM per rispondere in e-mail
Mi dispiace, ma temo che con il Turbo Pascal tu non abbia molte
speranze. Mi pare di capire che ti serva per uno schermo virtuale
(640x480): in questo caso dividilo in più parti, così da avere più
arrays più piccoli.
Non credo di averti risolto molti problemi :-)
--
     Giuliano Vettorazzi
     E-Mail: 
giu...@tin.it

:-)array[1..640,1..480] of <qualsiasi tipo>?
prova con un
type 
        Array = array  [1..480] of <qualsiasi tipo>; {devi stare nei 64K!!!}
        ArrayPtr = ^Array;
        Matrice = array [1..640] of ArrayPtr;
var
        m:Matrice;
begin
        for i:=1 to 640 do 
                getmem(m[i],sizeof(Array));
        m[2][34]^ := <variabile di qualsiasi tipo>
        for i:=1 to 640 do 
                dispose(m[i]);
end.
Penso che funzioni! anche se non ho il compilatore sotto mano... per gli array 
dinamici facevo cosi...
                                                        Luca Basso Ricci



Andrea (
anan...@NOSPAMfreenet.hut.fi
) wrote:
: Mi sapete dire come posso fare a dichiarare una matrice
: array[1..640,1..480] of <qualsiasi tipo>?
: Questa dichiarazione non funziona perchč supera i 64 k che si hanno a
: disposizione per i programmi in pascal. Ho provato anche a usare i
: puntatori senza nessun risultato.
: Grazie
: Ciao
: ATTENZIONE! rimuovere NOSPAM per rispondere in e-mail
 
 potresti provare a riscrivere il gestore di memoria....scherzo
 prova cosi':
 ----------------------------------------------------------------------
  {se disponi di abbastanza memoria convenzionale dovrebbe funzionare }
  {not tested, non garantisco nulla! :))}
  type line=array[1..640] of byte;
   var 
     a:array[1..480] of ^line;
     i,x,y   : integer; 
     c       : byte;
  begin
   x:=300;y:=327; c:=18; 
   {numeri generati dalla f. random del mio cervello}
   for i:=1 to 480 do getmem( a[i] , sizeof(line) );
   a[y]^[x]:=c;
   {.........}
   for i:=1 to 480 do freemem( a[i] , sizeof(line) );
  end.
----------------------------------------------------------------------
						  bye bye 
 
   mailto: 
dar...@zoo.diaedu.unisa.it
 
jer...@mbox.starnet.it