AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Zeigern

Ein Thema von praesident · begonnen am 29. Feb 2008 · letzter Beitrag vom 1. Mär 2008
Antwort Antwort
Seite 2 von 7     12 34     Letzte »    
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Problem mit Zeigern

  Alt 29. Feb 2008, 21:04
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;
Markus Kinzler
  Mit Zitat antworten Zitat
praesident

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

Re: Problem mit Zeigern

  Alt 29. Feb 2008, 21:06
Zitat von Macci:
Warum nicht einfach so?

Delphi-Quellcode:
PROCEDURE push(VAR zkopf:tzeiger;inhalt:char);
VAR zhilf,zneu:tzeiger;
BEGIN
zhilf:=zkopf;
WHILE NOT (zhilf^.next=NIL) DO zhilf:=zhilf^.next;

  new(zneu);
  zneu^.inhalt:=inhalt;
  zhilf^.next:=zneu;
  zneu^.next:=NIL;
END;
da kommt bei mir hier:

WHILE NOT (zhilf^.next=NIL) DO zhilf:=zhilf^.next; auch ein fehler
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Problem mit Zeigern

  Alt 29. Feb 2008, 21:08
garantiert der gleiche weil zu dem Zeitpunkt schon wieder versucht wird einen Zeiger zu derefernzieren der nil ist (hab ich oben bereits geschrieben).
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Macci

Registriert seit: 31. Mai 2007
129 Beiträge
 
#14

Re: Problem mit Zeigern

  Alt 29. Feb 2008, 21:08
Komisch... gib doch bitte mal die Definiton von TZeiger
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#15

Re: Problem mit Zeigern

  Alt 29. Feb 2008, 21:09
WHILE (zhilf <> nil) and (zhilf^.next <> NIL) DO zhilf:=zhilf^.next;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Problem mit Zeigern

  Alt 29. Feb 2008, 21:10
er übergibt der Funktion Push bereits nil
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#17

Re: Problem mit Zeigern

  Alt 29. Feb 2008, 21:12
Dann kann das nix werden, außer dass der Fehler dann später kommt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: Problem mit Zeigern

  Alt 29. Feb 2008, 21:12
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?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
praesident

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

Re: Problem mit Zeigern

  Alt 29. Feb 2008, 21:14
Zitat von DeddyH:
WHILE (zhilf <> nil) and (zhilf^.next <> NIL) DO zhilf:=zhilf^.next;
wenn ich die Zeile eingebe, hängts hier

  zhilf^.next:=zneu; hier die deklaration:

Delphi-Quellcode:
TYPE tzahl=char;
     tinhalt=tzahl;
     tzeiger=^tknoten;
     tknoten= RECORD
               inhalt: tinhalt;
               next:tzeiger;
               END;

VAR zliste,zkopf :tzeiger;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#20

Re: Problem mit Zeigern

  Alt 29. Feb 2008, 21:16
Wenn Du nil an die Funktion übergibst, kommt der Fehler eben an der besagten Stelle.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 7     12 34     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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