AGB  ·  Datenschutz  ·  Impressum  







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

pointer auf falscher addresse?

Ein Thema von dummer_info_schüler · begonnen am 4. Apr 2004 · letzter Beitrag vom 6. Apr 2004
Antwort Antwort
dummer_info_schüler

Registriert seit: 28. Mär 2004
Ort: Cottbus
26 Beiträge
 
#1

pointer auf falscher addresse?

  Alt 4. Apr 2004, 16:15
Hallo!
Ich habe ´ne Prozedur geschrieben, damit eine Information als Pointer sortiert eingefügt wird und dann in ´nem stringgrid die Pointer-info´s dargestellt werden. Im Quelltext sind so an sich auch keine Fehler, aber wenn ich die prozedur aufrufe, kommt die Meldung
<Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004040D6 in module 'Project1.exe'. Read of address 'FFFFFFFF'. Process stopped. Use Stop or Run to continue.>
Delphi-Quellcode:
procedure einfuegen (var name: TInfo; var s: zeiger);
var alt, neu, basis: zeiger;
begin
 basis:=s;
 alt:=nil;
 while (s <> nil) and (s^.info < name) do begin
    alt:=s;
    s:=s^.next;
 end;
 new(neu);
 neu^.info:=name;
 if alt= nil then begin
   neu^.next:=s;
   s:=neu;
 end else begin
   alt^.next:=neu;
   neu^.next:=s;
   if (basis <> nil) then s:=basis;
 end;
end;

procedure aktualisiere_stringgrid(var s: zeiger);
var i: integer;
begin
 i:=0;
 repeat
   inc(i);
   form1.stringgrid1.rowcount:=i+1;
   form1.stringgrid1.cells[0,i]:=l^.info;
   l:=l^.next;
 until l^.next= nil;
end;

procedure TForm1.Button1Click(Sender: TObject);
var name: string[30];
begin
  name:=inputbox('Einfügen','Was soll eingefügt werden?','');
  einfuegen(name,s);
  aktualisiere_stringgrid(s);
end;
Der zeiger ist so definiert:
Delphi-Quellcode:
type TInfo= string[30];
     zeiger= ^TElement;
     TElement = record
       info: TInfo;
       next: zeiger;
     end;
Ich hab jetzt überhaupt keine Ahnung, wo der Fehler sein soll... Hat jmd. von euch ´ne Idee?
Danke im Voraus!
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#2

Re: pointer auf falscher addresse?

  Alt 4. Apr 2004, 19:14
In welcher Zeile kommt der Fehler?
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
dummer_info_schüler

Registriert seit: 28. Mär 2004
Ort: Cottbus
26 Beiträge
 
#3

Re: pointer auf falscher addresse?

  Alt 4. Apr 2004, 19:17
der grüne Pfeil zeigt dann auf die Zeile
aktualisiere_stringgrid(s);
im Button1.click
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#4

Re: pointer auf falscher addresse?

  Alt 4. Apr 2004, 19:51
[quote="dummer_info_schüler"]
Delphi-Quellcode:
   form1.stringgrid1.cells[0,i]:=l^.info;
   l:=l^.next;
 until l^.next= nil;
end;
Was ist dieses l?
Den Parameter s, den du der Prozedur übergibst verwendest du gar nicht.
Mit F4 kannt du übrigens in die Funktion reinsteppen, dann siehst du in welcher Zeile der Fehler genau auftritt.
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: pointer auf falscher addresse?

  Alt 6. Apr 2004, 18:20
Hi dummer_info_schüler(?)

mach es einfach so:

Delphi-Quellcode:
procedure aktualisiere_stringgrid(var s: zeiger);
var
  i: integer;
begin
  i:=0;
  Alt := S;
  while Alt <> nil do
  begin
    form1.stringgrid1.rowcount := i + 1;
    Form1.StringGrid1.Cells[0, i]:= S^.Info;
    Alt := S^.Next;
    inc(i);
  end;
end;
Und zum Lesen: "Das große Buch zu Turbo Pascal 6.0", Seite 262-276, 1991 Data Becker GmbH, ISBN 3-89011-322-2.

Gibt es auf jeden gutsortierten Trodelmarkt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:30 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