Re: Problem mit Zeigern
Zitat:
hab das erst seit einer woche und wir hatten vorher nur mit pascal gearbeitet... könntet ihr also für einen totalen delphi anfänger den fehler noch einmal zusammenfassen? und wenn es nicht allzu viel umstände macht noch einen kleinen programmcode als verbesserung? wäre echt meine rettung, da mir das mit den zeigern in delphi nicht genauer erläutert wurde danke |
Re: Problem mit Zeigern
beim aufruf deiner Funktion "push" hat zkopf den Wert nil
das heißt er zeigt auf keinen Speicher. Dementsprechend kracht es immer sobald du auf Untereigenschaften davon zugreifen willst. Wie bereits erwähnt empfehle ich dir das Video Pointerfun damit du ein Gespür für Pointer bekommst. |
Re: Problem mit Zeigern
Ungetestet:
Delphi-Quellcode:
PROCEDURE push(VAR zkopf:tzeiger;inhalt:char);
VAR zhilf, zneu:tzeiger; BEGIN //erstes Element soll angelegt werden if zkopf = nil then begin new(zhilf); zhilf^.inhalt := inhalt; zhilf^.next := nil; end //eine weiteres Element soll angehängt werden else begin zhilf:=zkopf; while (zhilf <> nil) and (zhilf^.next <> nil) do zhilf:=zhilf^.next; new(zneu); zneu^.inhalt:=inhalt; zneu^.next:=NIL; zhilf^.next:=zneu; end; zkopf := zhilf; END; |
Re: Problem mit Zeigern
Zitat:
werd mir das mal genauer anschauen, damit ich verstehe, warum bei mir immer der Fehler erzeugt wurde... danke nochmal für eue hilfe |
Re: Problem mit Zeigern
Stimmt, daran dass zkopf schon mit nil übergeben wird, habe ich gar nicht gedacht ;-)
@DeddyH: Hier
Delphi-Quellcode:
ist die erste Abfrage (zhilf<>nil) unnötig ;-)
while (zhilf <> nil) and (zhilf^.next <> nil) do
zhilf:=zhilf^.next; zhilf kann ja nie nil werden. |
Re: Problem mit Zeigern
Stimmt, war noch vom C&P übrig geblieben (schadet aber auch nicht) :zwinker:
|
Re: Problem mit Zeigern
aber müsste nicht das:
Delphi-Quellcode:
ganz vor, als letzte zeile der ersten fallunterscheidung?
zkopf := zhilf;
sonst könnte ich ja nie mehr auf das erste element zugreifen!? |
Re: Problem mit Zeigern
Durch diese Zuweisung hast Du immer das letzte Element der Liste in zkopf stehen. Soll das nicht so sein?
|
Re: Problem mit Zeigern
Zitat:
|
Re: Problem mit Zeigern
Nö, ist kein Aufwand, dann mach es so, wie Du selbst schon gesagt hast:
Delphi-Quellcode:
PROCEDURE push(VAR zkopf:tzeiger;inhalt:char);
VAR zhilf, zneu:tzeiger; BEGIN //erstes Element soll angelegt werden if zkopf = nil then begin new(zhilf); zhilf^.inhalt := inhalt; zhilf^.next := nil; zkopf := zhilf; end //eine weiteres Element soll angehängt werden else begin zhilf:=zkopf; while (zhilf <> nil) and (zhilf^.next <> nil) do zhilf:=zhilf^.next; new(zneu); zneu^.inhalt:=inhalt; zneu^.next:=NIL; zhilf^.next:=zneu; end; END; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz