Thema: Delphi Problem mit Zeigern

Einzelnen Beitrag anzeigen

praesident

Registriert seit: 29. Feb 2008
25 Beiträge
 
#35

Re: Problem mit Zeigern

  Alt 29. Feb 2008, 22:54
ich hab noch ein kleines problem...

und zwar, wenn ich nun eine zweite liste erzeuge und dort soll die erste in umgekehrter reihenfolge hineingeschrieben werden.....

dafür habe ich zkopf und zkopf2 in der ersten unit deklariert...die waren vorher gar nicht deklariert

allerdings bekomme ich jetzt immer diese fehlermeldung: [Fehler] Unit1.pas(51): Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen


hier nocheinmal die zugehörige Prozedur:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
VAR laeng,i:byte;
    zkopf,zkopf2 :tzeiger;
begin
  init(zkopf);
  laeng:=length(edit1.Text);
  FOR i:=1 TO laeng DO
     push(zkopf,edit1.text[i]);

  init(zkopf2);
  FOR i:=1 TO laeng DO
     push(zkopf2,pop(zkopf));
  edit1.text:=top(zkopf2);
end;
die pop-funktion:

Delphi-Quellcode:
FUNCTION pop(VAR zkopf:tzeiger):char;
VAR zhilf1,zhilf2:tzeiger;
    z:char;
BEGIN
 zhilf1:=zkopf;
 zhilf2:=zkopf^.next;
 WHILE NOT(zhilf2^.next = NIL) DO
  BEGIN
   zhilf1:=zhilf2;
   zhilf2:=zhilf2^.next;
  END;
  zhilf1^.next:=NIL;
  pop:=zhilf2^.inhalt;
END;


und die im vorigen teil besprochene push prozedur:

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;
danke
  Mit Zitat antworten Zitat