Einzelnen Beitrag anzeigen

hugh

Registriert seit: 31. Aug 2003
6 Beiträge
 
#1

access violation bei arrays aus record

  Alt 1. Sep 2003, 00:11
Hallo zusammen,
bin neu hier und habe ein Problem beim Operieren mit Arrays aus einem Record; ich erhalte immer an der gleichen Stelle im Debug-Modus die Informationsmeldung "project D:\bla\bla.exe faulted with message: 'access violation at 0x0000000 read of address 0x00000000' Process stopped.",zugleich öffnet sich das CPU-Fenster. Der Record und die Arrays sehen folgendermassen aus:
Delphi-Quellcode:
implementation
type
satztyp = Record
                 Satznummer : Integer;
                 Frage, Antwort : String;
                 end;
var
k,l,m,n,jo,i0: Integer;
Level1, AbfrageArray : array[0..3] of satztyp;
   Level2 : array[0..7] of satztyp;
   Level3 : array[0..19] of TLernstoffsatztyp;
   Level4 : array[0..31] of TLernstoffsatztyp;
   Level5 : array[0..51] of TLernstoffsatztyp;
{$R *.dfm}
Soviel zur Deklaration.
Ich benutze die globalen Integers um durch die insgesamt 6 Arrays zu navigieren. Das Problem tritt in der Abfrageroutine auf und zwar immer nach der insgesamt 6. Inkrementierung von k. Hier der Codeausschnitt dazu:
Delphi-Quellcode:
 
procedure TForm1.Abfrage(Antwort: string);
var j: Integer;
KopierArray: array[0..3] of TLernstoffsatztyp;

kopiert: Boolean;
begin
kopiert:=false;
o:=0;
if Antwort = (AbfrageArray[i0].Antwort) then
begin
  inc(Richtig);
  case AbfrageArray[i0].Satznummer of
   0: begin
   
   Level2[k].Frage:=AbfrageArray[i0].Frage;
   Level2[k].Antwort:=AbfrageArray[i0].Antwort;
   Level2j[k].Satznummer:=1;
   
        AbfrageArray[i0].Frage:=Leer;
        AbfrageArray[i0].Antwort:=Leer;
        AbfrageArray[i0].Satznummer:=10;
   inc(k);//im else-Zweig dieser if-Anweisung wird zurück in Level1 //kopiert
Hab'mich auf den Code beschränkt, in dem der Fehler auftritt. Ansonsten benutze ich Memos zur Texteingabe zusammen mit einem OnKeyUp-EventHandler. Die Arrays und Integers werden im FormCreateEvent initialisiert. Wenn ich das Programm kompiliere und außerhalb von Delphi ausführe, schließt es sich an derselben Stelle wie im Debug-Modus.
Nun ich hoffe, dass einer von Euch eine Idee hat, was mein Fehler ist oder wie ich ihn weiter eingrenzen kann.
Danke im Voraus,
Gruss,
Andreas
  Mit Zitat antworten Zitat