Re: Problem mit Zeigern
Und zKopf ist dann die Wurzel?
Delphi-Quellcode:
PROCEDURE push(zkopf:tzeiger;inhalt:char;i:byte);
VAR zneu:tzeiger; BEGIN //Ermittle letztes Element while zhilf^.next<>NIL do zkopf := zkopf^.Next; new(zneu); zneu^.inhalt:=inhalt; zneu^.next:=NIL; zkopf^.next:=zneu; END; |
Re: Problem mit Zeigern
Zitat:
Delphi-Quellcode:
auch ein fehler
WHILE NOT (zhilf^.next=NIL) DO zhilf:=zhilf^.next;
|
Re: Problem mit Zeigern
garantiert der gleiche weil zu dem Zeitpunkt schon wieder versucht wird einen Zeiger zu derefernzieren der nil ist (hab ich oben bereits geschrieben).
|
Re: Problem mit Zeigern
Komisch... gib doch bitte mal die Definiton von TZeiger
|
Re: Problem mit Zeigern
Delphi-Quellcode:
WHILE (zhilf <> nil) and (zhilf^.next <> NIL) DO zhilf:=zhilf^.next;
|
Re: Problem mit Zeigern
er übergibt der Funktion Push bereits nil
|
Re: Problem mit Zeigern
Dann kann das nix werden, außer dass der Fehler dann später kommt.
|
Re: Problem mit Zeigern
Dein Code ist wirklich nicht sonderlich gut. In Pascal kann man sowas schreiben, aber Delphi hat ganz andere Konventionen.
Aber abgesehen von den Konventionen: Warum gehst du immer bis zum Ende hindurch? Wenn das ein Stack ist, könntest du auch einfach dein neues Element ganz vorne hinsetzen. Dann könntest du in konstanter Zeit pushen und poppen. Außerdem, warum machst du das nicht gleich in einer Klasse? |
Re: Problem mit Zeigern
Zitat:
Delphi-Quellcode:
hier die deklaration:
zhilf^.next:=zneu;
Delphi-Quellcode:
TYPE tzahl=char;
tinhalt=tzahl; tzeiger=^tknoten; tknoten= RECORD inhalt: tinhalt; next:tzeiger; END; VAR zliste,zkopf :tzeiger; |
Re: Problem mit Zeigern
Wenn Du nil an die Funktion übergibst, kommt der Fehler eben an der besagten Stelle.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 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