beim starten des Programms erscheint die Fehlermeldung Exeption-Klasse: >>External SIGSEGV<< in der mit dem Pfeil makierten Zeile(2. Quellcode).
Die Fehlermeldung erscheint nur beim Aufrufen von Zettel[ ] obwohl das Objekt vorher erzeugt wurde.
Ich versteh nicht wo das Problem liegt.
Teile des betreffenden Quellcodes:
Code: Alles auswählen
unit unitMain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
Grids, unitKlasseAbsatz;
type
{ TFormMain }
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
Abrechnung:CAbsatz;
end;
var
FormMain: TFormMain;
implementation
{$R *.lfm}
{ TFormMain }
procedure TFormMain.FormCreate(Sender: TObject);
begin
Abrechnung.erzeuge;
Abrechnung.hinzuZettel(1);
end;
end.
Code: Alles auswählen
unit unitKlasseAbsatz;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils;
Type
CAbsatz = class
private
Zettel: array[1..50]of real;
public
constructor erzeuge;
function gibZettel(Nummer:integer):real;
procedure hinzuZettel(Betrag:real);
end;
implementation
Constructor CAbsatz.erzeuge;
Var
i:integer;
begin
for i:=0 to 49 do
Zettel[i]:=0;
end;
Procedure CAbsatz.hinzuZettel(Betrag:real);
Var
i:integer;
begin
for i:=0 to 49 do
if Zettel[i] =0 then <<<===
Zettel[i]:=Betrag;
end;
end.
<-stack-list-arguments 1 0 4>
^done,stack-args=[frame={level="0",args=[{name="SENDER",value="0x2196e0"},{name="this",value="<error reading variable>"}]},frame={level="1",args=[{name="this",value="<error reading variable>"}]},frame={level="2",args=[{name="this",value="<error reading variable>"}]},frame={level="3",args=[{name="THEOWNER",value="0x1dccb0"},{name="vmt",value="0x1"},{name="this",value="<error reading variable>"}]},frame={level="4",args=[{name="INSTANCECLASS",value="<incomplete type>"},{name="REFERENCE",value="void"},{name="this",value="<error reading variable>"}]}]
(gdb)
<-stack-list-frames 0 4>
^done,stack=[frame={level="0",addr="0x00425f9f",func="TFORMMAIN__FORMCREATE",file="unitmain.pas",fullname="C:/Users/benutzer/Desktop/Abrechnungen_lp_d/unitmain.pas",line="65"},frame={level="1",addr="0x00418150",func="TCUSTOMFORM__DOCREATE",file="./include/customform.inc",line="930"},frame={level="2",addr="0x0041664a",func="TCUSTOMFORM__AFTERCONSTRUCTION",file="./include/customform.inc",line="149"},frame={level="3",addr="0x0041cf76",func="TFORM__CREATE",file="./include/customform.inc",line="3058"},frame={level="4",addr="0x00424538",func="TAPPLICATION__CREATEFORM",file="./include/application.inc",line="2169"}]
(gdb)
<-stack-list-arguments 1 0 0>
^done,stack-args=[frame={level="0",args=[{name="SENDER",value="0x2196e0"},{name="this",value="<error reading variable>"}]}]
(gdb)
<-stack-list-locals 1>
^done,locals=[{name="SENDER",value="0x2196e0"}]
(gdb)