Potrzebuję zbudować tablicę dwuwymiarową 1000 000 000 na 10 elementów. Oczywiście kompilator wywalił błąd “data segment too large” .Do tego celu będzie nawet lepsza lista bo będę usuwał elementy że środka. Wiem jak zrobić listę tablic, ale jak porównać elementy jednej tablicy zapisanej na liście z drugą?
p=h
while (i<11) and (takiesame:=true) do
h^.t_=p^.t_ then takiesame:=true
else takiesame:=false;
A nawet jeśli to jest dobrze to musze i tak zrobić pętlę for od 1 do 10 000 000 000 a integer nie obejmuje takiego zakresu. Jak to zrobić
$ cat testInt64.pas
PROGRAM testInt64;
VAR
i : Int64;
BEGIN
i := 12456734633;
WriteLn(i);
ReadLn();
END.
$ fpc testInt64.pas
Free Pascal Compiler version 2.2.2 [2008/11/07] for i386
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Linux for i386
Compiling testInt64.pas
Linking testInt64
9 lines compiled, 0.1 sec
$ ./testInt64
12456734633
Skoro działa pod Linuksem, pod Windowsem też musi.
Integer może przedstawiać LongInt lub SmallInt, albo nawet Int64, zależnie od implementacji i opcji. Zazwyczaj jest traktowany jak SmallInt, ale nie zawsze. Dlatego ja np. kiedy chcę 2-bajtową zmienną, używam SmallInt.