natürlich werden deine lösungen gelesen.
Aber wenn ich das ändere...hoffe das alles so korrekt ist:
Delphi-Quellcode:
DESTRUCTOR TBigInteger.done;
BEGIN { TBigInteger.done }
FreeMem (wert, byteanzahl + 1);
END { TBigInteger.done };
{ ************************************************************************ }
procedure debug(txt:String);
begin
//WriteLn(txt);
FormEingabe.Memo1.Lines.Add(txt);
end;
function TBigInteger.multr (b : TBigInteger):TBigInteger;
var
tmp: TBigInteger;
begin
tmp := copy()^;
tmp.mult(tmp,b);
result := tmp.copy()^;
end;
function TBigInteger.addR(b: TBigInteger): TBigInteger;
var
tmp: TBigInteger;
begin
tmp := copy()^;
tmp.add(tmp,b);
result := tmp.copy()^;
end;
function TBigInteger.subR(b: TBigInteger): TBigInteger;
var
tmp: TBigInteger;
begin
tmp := copy()^;
tmp.sub(tmp,b);
result := tmp.copy()^;
end;
function TBigInteger.shlR(n: Integer): TBigInteger;
var
tmp :TBigInteger;
begin
tmp := copy()^;
tmp.shiftleft(n);
result := tmp.copy()^;
end;
function TBigInteger.shrR(n: Integer): TBigInteger;
var
tmp: TBigInteger;
begin
tmp := copy()^;
tmp.shiftright(n);
result := tmp.copy()^;
end;
function TBigInteger.copy : PBigInteger;
begin
new(Result,BigInteger(BigIntegerToStr()));
end;
(*
function TBigInteger.copy:TBigInteger;
var
r : PBigInteger;
begin
//r.BigInteger(BigIntegerToStr());
new(r,BigInteger(BigIntegerToStr()));
result := r^;
end;
*)
dann bekomme ich eine "Zugriffsverletzung auf die Adresse xyz"