Einzelnen Beitrag anzeigen

qubeus

Registriert seit: 19. Jan 2006
17 Beiträge
 
#1

Warum macht das großen Array Probleme?

  Alt 29. Apr 2006, 23:33
Hi Leute!

Ich programmiere grade ein Tool mit Delphi, das mir dabei hilft Tiles für mein eigenes RPG zu erstellen und daraus Maps zu erstellen. Ich habe zunächst ein Array gehabt, dass nur die Daten eines Tiles enthält und das sah folgendermaßen aus:

tile1: array[1..16,1..16] of integer;

....und funktionierte wunderbar....

da ich aber jetzt nicht nur ein Tile bearbeiten möchte, sondern eine ganze Map die aus 1024 Tiles besteht habe ich das Array erweitert und noch eine dritte Dimension hinzugefügt:

tile1: array[1..16,1..16,1..1024] of integer;

....und hierbei kam folgende Fehlermeldung:

FEHLER>
Im Projekt Project1.exe ist ein Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zufgriffsverletzung bei Adresse 00447C27 in Modul 'Project1.exe'. Schreiben von Adresse 00439C70'. Prozeß wurde angehalten. Mit Einzelnen Anweisungen oder Start fortsetzen.
<FEHLER

Ich habe dann die 1024 durch eine 128 ersetzt und der Fehler kam weiterhin und dann habe ich sie durch eine 64 ersetzt und der Fehler kam nicht mehr... es muss also mit der Größe des Arrays zusammenhängen, dass diese Fehlermeldung kommt.

tile1: array[1..16,1..16,1..64] of integer; <=== KEIN FEHLER DA "64" statt "1024"

Naja mein Problem ist denke ich klar, ich will statt 64 Tiles 1024 Tiles benutzen können und ich glaube nicht, dass mein Arbeitsspeicher zu klein ist für ein etwas größeres Array von 16x16x1024 des Typs Integer.

Hoffe also, dass ihr mir helfen könnt, dass ist sicher ein typisches Delphi Problem, für das man nur die Lösung wissen muss, um damit umzugehen. Freue mich über schnelle Antworten!!
  Mit Zitat antworten Zitat