Hallo alle zusammen.
Ich zeige Euch erstmal den Quellcode:
Delphi-Quellcode:
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
TArrayList = array of array of integer;
PArrayList = ^TArrayList;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure modifyMatrix(list:PArrayList);
Begin
list^[2,4]:=5;
end;
procedure TForm1.Button1Click(Sender: TObject);
var mylist:PArrayList;
begin
new(mylist);
setLength(myList^,4,4);
mylist^[0,5]:=3;
modifyMatrix(myList);
label1.Caption:=inttostr(mylist^[0,5]);
label2.Caption:=inttostr(mylist^[2,4]);
//dispose(mylist);
end;
Jetzt hätte ich dazu zwei Fragen:
1. Mit setLength lege ich die Größe des dynamischen Arrays fest. Warum kann ich über dessen Grenzen hinaus trotzdem Werte ablegen?
2. Die kommentierte Zeile "dispose(mylist);" erzeugt einen Absturz. Warum?
Danke