Christian: Zu große Array für Modula3

Hallo!

Im Studium sollen wir das Spiel Solitaire durchspielen lassen und errechnen, wieviele Mögliche Lösungen es gibt.

Wie auch immer, kann mir jemand sagen, was der folgende Fehler zu bedeuten hat und wie ich ihn beheben kann?

***
*** runtime error:
***    gc: Could not extend the traced heap
***

use option @M3stackdump to get a stack trace
[main] C:\modula3\aufgabe_w\NT386GNU\Solitaire.exe 1000 (0) handle_exceptions: Exception: STATUS_ACCESS_VIOLATION
[main] Solitaire 1000 (0) handle_exceptions: Dumping stack trace to Solitaire.exe.core

Ich habe ein Array ht, das auf hte zeigt:
TYPE hte = REF ARRAY [0..131071] OF INTEGER;
VAR  ht: ARRAY [0..65535] OF hte;

Ich denke es liegt daran, das das ganze einfach zu groß wird, aber ich brauch nunmal die größe, hat jemand nen tipp, wie ich solch große datenmengen schön übersichtlich sortiert anordnen kann.
Zugriffe dürfen natürlich auch nicht lange dauern, weil der sonst ja nie fertig wird mit rechnen. Es geht darum, bereits errechnete Lösungen zu speichern und abzurufen, statt sie nochmal neu zu berechnen und in jedem Spiel gibt es ja nunmal unmengen von Möglichen Wegen.

Habt ihr ungefähr verstanden, was ich meine? Könnt ihr mir helfen?

Vielen Dank und Grüße
Christian

PS: Warum gibt es in Modula3 keine Hashes so wie in Perl?

  1. ***
    *** runtime error:
    ***    gc: Could not extend the traced heap
    ***

    Hallo!

    Modula kenne ich nicht, wir haben z.B. Java gemacht. Allerdings kann ich dir ein paar allgemeine Tips geben.
    Du könntest:
    a) Eine 64 Bit Modula Laufzeitumgebung auf einem Server mit 32 Gigabyte Speicher benutzen, um dein speicherfressedes Programm auszuführen.
    b) Mit weniger Speicher als 32 Gb auskommen :-) D.h. es ist nicht möglich alles gleichzeitig abzuspeichern...

    Dominik