Witam!
Mam taki problem z którym nie moge sobie poradzic w pascalu (nie delphi). Jak zadeklarować dowolnie dużą tablicę (naturalnie w granicach wolnej pamięci): np. program poprosi użytkownika o podanie liczby i i wówczas stworzy tablice o podanej wielkości. Asembler odpada bo kod ma byc kompilowany na różnych architekturach, listy również bo czas dostepu do dowolnej komórki tablicy ma być równy.
Będę wdzięczny za wszelkie pomysły.
Albo tablica o indeksie [1..1] (czyli 1 element), do której pamięć przydzielamy dynamicznie - of course z wyłączonym sprawdzeniem zakresów.
// jak chcesz dynamicznie przydzielić pamięć dla statycznej tablicy? - Ł
// no dokładnie tak, jak Ty, tylko się niezrozumiale wyraziłem; wskaźnik na typ tablicowy o takim rozmiarze i potem przydzielać pamięć dynamicznie do tego wskaźnika
po pierwsze - w trybie rzeczywistym masz ograniczenie wielkości bloku danych do 64kB, Turbo Pascal jeszcze zabiera sobie z tego 16B i zostaje Ci 65520B na dane.
po drugie - deklarujesz sobie tablicę array[1..65520] of byte czy of cokolwiek_o_rozmiarze_bajta, deklarujesz wskaźnik do tej tablicy, a na stępnie pobierasz pamięć dla tej tablicy (GetMem), ale nie dla całej, tylko dla tylu elementów, ile potrzebuje user.