Einzelnen Beitrag anzeigen

Benutzerbild von atreju2oo0
atreju2oo0

Registriert seit: 5. Dez 2003
Ort: Berlin
289 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Pointer : Eine Speicherstelle weiterrücken

  Alt 12. Mär 2004, 20:09
Also das was Du brauchst ist eine Liste

Code:
type
      PListe : ^TListe;
      TListe = record
      wert : integer // beliebige Variablen;
      next : PListe; // zeigt auf das nächste Element

var Anker,help:PListe; // Anker speichert das ERSTE Element und wird NIE verändert; help durchläuft die Liste
Im OnCreate musst Du nun noch die Zeiger initialisieren
Code:

new(Anker);// Reserviert Speicher für die Variable
An irgendeiner Stelle musst Du die Werte einlesen; Das geht so:
Code:
 help:=anker; // Setzt die Hilfsvariable auf die Erste Stelle

repeat
 new(help.next); // Erzeugt eine neue Variable und speichert den Zeiger dieser Variable in help.next ab
 help:=help.next; // Jetzt rutscht man mit help in der Liste eins hoch
 help.wert:=2    // Hier kannst Du Daten ändern
 Help.next:=nil; // und setzt den neuen Nachfolger, der ja noch nicht erzeugt wurde auf 0 
until fertig...
und mit der Struktur kannst Du dann ganz locker eins hoch rutschen indem du
Code:
 help:=help.next
benutzt...

Am Ende des Programms musst Du den Speicher noch freigeben
indem Du diese Procedure mit clearanker(Anker) aufrufst
Code:
  procedure clearanker(help: PListe);
    begin
      if help.next<>nil then clearanker(help.next);
      dispose(help);
    end;
Ich hoffe das löst dein Problem...
Thomas
  Mit Zitat antworten Zitat