dowolnie duża tablica

0

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.

0

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

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1