Statt eines Pointers könntest du die Matrix auch als var-Parameter übergeben.
Das wäre dann Call-By-Reference nach Pascal Art.
Delphi-Quellcode:
procedure MatrixMultiply(var mat: TDoubleMatrix; scalar: Double);
var
yDim, xDim: Integer;
begin
for yDim := Low(mat) to High(mat) do
for xDim := Low(mat[yDim]) to High(mat[yDim]) do
mat[yDim, xDim] := mat[yDim, xDim] * scalar;
end;
procedure Test;
var
yDim, xDim: Integer;
mat: TDoubleMatrix;
begin
SetLength(mat, 3, 3);
for yDim := Low(mat) to High(mat) do
for xDim := Low(mat[yDim]) to High(mat[yDim]) do
mat[yDim, xDim] := 1;
MatrixMultiply(mat, 2);
ShowMessage(FloatToStr(mat[0, 0]));
SetLength(mat, 0, 0);
end;
Getippt und nicht getestet.