Runtime error w konkretnym miejscu,nie wiem dlaczego

0
jeden_wynik=record
ruchy:integer;
nick:string;
end;
pwyniki=^wyniki;
wyniki=record
wynik:jeden_wynik;
nast:pwyniki;
`code>`if glowa=nil then
 begin
 new(glowa^.nast);
 glowa^.nast:=nil;
  read(highscore,glowa^.wynik);
 writeln(glowa^.wynik.nick,' ',glowa^.wynik.ruchy);
 listazpliku(glowa^.nast);
 dispose(glowa);
 end; 

Probowalem usunac kawalki,dalej wywalalo Runtime errory(w sumie tylko mignely i sie wylaczaly, zdazylem przeczytac jedynie runtime error,wiec nie wiem nawet jakie).W koncu gdy zastapilem to zwyklym writeln('blablabla') wyswietlilo mi to. Wyskakuje przy przypisaniu wartosci do glowa.nast:=nil lub read(highscore,glowa.wynik).
Jest to lista ktora wczytuje wartosci z pliku (highscore) i je wyswietla. Plik na pewno istnieje, probowalem przypisac do zmiennych nie tworzonych dynamicznie i nie ma najmniejszego problemu.

0

ale tak szczerze
CO TO JEST ??

0

To moze inaczej sformuluje pytanie: Wywala mi Runtime error gdy chce przypisac wartosc do glowa.nast lub glowa.wynik. Jakies pomysly dlaczego?

0
procedure listazpliku(glowa:pwyniki);
begin
if glowa=nil then
 begin
  new(glowa^.nast);
  glowa^.nast:=nil;
  read(highscore,glowa^.wynik);
 writeln(glowa^.wynik.nick,' ',glowa^.wynik.ruchy);
 listazpliku(glowa^.nast);
 dispose(glowa);
 end;
if glowa<>nil then listazpliku(glowa^.nast);

end; 

procedura

 begin
   assign(highscore,'highscore.txt');
 reset(highscore);
  new(glowa);
glowa:=nil;
listazpliku(glowa);

close(highscore);
readln();
end;

Podejrzewam ze cos jest nie tak w momencie glowa:=nil; a pozniej do tego przypisuje,tylko nie wiem co mam zrobic zeby to dzialalo

0

Szczerze- mam wrazenie ze po prostu chcesz sie troche poczepiac a nie pomoc. Akurat zmiennych jestem pewien ze sa poprawne, a wiedza o zmiennych nie zmienila by nic w odpowiedzi na "czy po "glowa:=nil" mozna zrobic "glowa^.wynik:=cokolwiek;" ,czy to jest blad". Wiem ze jestem niejako skazany na laskawosc ludzi tutaj odpisujacych,ale jestes wyjatkowo nieprzyjemny. Dzieki za pomoc, moze ktos kto nie bedzie totalnym dupkiem mi odpowie.

0

glowa:=nil; -> pusta głowa?

0
:123 napisał(a)

glowa:=nil; -> pusta głowa?

Ach,no tak... Dzieki wielkie.

0

if glowa=nil then
begin
new(glowa) i dopiero można się odwoływać do pól rekordu glowa
czyli glowa^.wynik

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