Maksymalna ilość zmiennych globalnych

0

Jaka jest maksymalna ilość zmiennych globalnych w pascalu?
I jaka jest maksymalna liczba elementów tablicy?
Przy próbie zadeklarowanie tablicy powyżej +/- 50000 wyskakuje komunikat "structure too large" natomiast przy rozbiciu tego na kilka tablic "too many variables". Zmienne są typu integer. Czy to zależy od ilości pamięci, kompilatora?

Szukałem w wielu miejscach ale nie moge tego znaleźć :-|

Ponadto jeszcze jedno takie proste pytanko: co jest standardowym wyjściem/wejściem w pascalu? Według mnie (i poznanych mi opracowań) jest to ekran monitora i klawiatura ale mam teraz pewne wątpliwości.

0

z tego co wiem nie mozesz zadeklarowac wiekszej struktury jak 64k +/- kilka bajtow na 16 bit kompilatorze

utwórz tablice wskaźników

0
  1. Myśle, że ograniczenie nie dotyczy ilość zmiennych, ale ich łącznego rozmiaru. Spróbuj zarezerwować pamięć dynamicznie, powinno się udać. Jeżeli bardzo zależy Ci na tym, żeby tablice były ustawione na sztywno to pogrzeb w opcjach kompilatora(domyślam się, że jest to Turbo Pascal, zgadłem?)... Powinno tam być coś takiego jak stack size, przestaw to na trochę więcej(już dokładnie nie pamiętam co trzeba zrobić , poszukaj na forum powinno gdzieś być dokładniej opisane).

  2. Też bym obstawiał ekran/klawiatura.

0

odpowiedzi powinien udzielić help załączony do kompilatora to dodatkowa sugestia

0

Z nieznanego mi powodu na swoim kompilatorze Turbo pascala nie posiadam pomocy. Ale zmienie go na taki co ma :-)
Co do stack size to mam ustawiony na maksymalny i to niewiele pomaga w moim przypadku.
Pokombinuje teraz z zastosowaniem tablic dynamicznych (wskaźnikowych?)

0

pamietaj, że łączny rozmiar wszystkich "statycznych" danych w segmencie danych globalnych nie może przekroczyć 65520 bajtów, to samo z danymi lokalnymi (wewnątrz funkcji) i to samo z TYPAMI (nie możesz utworzyć typu, który deklaruje zajęcie więcej, niż 65520B pamięci).
rozmiar wszystkich danych ładowanych do pamięci, włącznie z kodem programu i innymi już załadowanymi programami nie może przekroczyć 640kB (typowo do Twojej dyspozycji zostaje ~300kB, jeśli masz odpalony himem z paroma opcjami, to możesz mieć "nawet" 500kB).

imho pisanie jakiegokolwiek zaawansowanego programu dla trybu rzeczywistego to strzał w kolano.

0

Jeśl to jest Borland Pascal 7.0 (nie Turbo Pascal), w konfiguracji włącz Protected Mode.

// przy czym rozmiar segmentu jest nadal 16-bitowy, więc wszystkei ograniczenia na zmienne statyczne pozostają - Ł

0

Natomiast Turbo Pascal posiada dwa pliki EXE uruchamiające kompilator. Plik TPX.EXE to tryb chroniony, a TURBO.EXE to tryb rzeczywisty (albo odwrotnie).

// co to ma do rzeczy? i tak oba kompilują do trybu rzeczywistego - Ł

0

Wystarczyła zmiana kompilatora na free pascal compiler, który umożliwia użycie większej ilości pamięci. Ale miałem problem z plikiem chyba ft.cfg. Przy próbie kompilacji okazało się, że wyskakuje błąd "unable to open file [ścieżka]\ft.cfg" W pierwszej linii pliku był komunikat, że plik jest bardzo ważny i nie należy go modyfikować czy jakoś tak. Po wielu próbach okazało się, że najprostszym rozwiązaniem jest ... usunięcie tego pliku. To podpowiedź dla innych na przyszłość ;-)

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