![]() |
Re: Interner Fehler C1537 - result Fehler???
Genau, wenn du mit Objects arbeiten willst, dann musst du Pointer auf Object verwenden.
Also überall statt TBigInteger eben PBigInteger zurückgeben. |
Re: Interner Fehler C1537 - result Fehler???
Ich bin in Zeigergeschichten nicht so fit. Wie meinst du das? Kannst du mir das mal an einer der Funktionen zeigen?
|
Re: Interner Fehler C1537 - result Fehler???
hallo,
ich habe mal versucht überall einen PBigInteger zurückgeben zulassen. Ich bekomme aber einen Speicherzugriffsfehler in der Zeile
Delphi-Quellcode:
und hier der gesamte Code der Funktion.
xh := a.shrR(n)^;
Delphi-Quellcode:
function pas(const a: TBigInteger; const b : TBigInteger):PBigInteger;
var n,m: LongInt; xh,xl,yh,yl: TBigInteger; t3,t1,t2: TBigInteger; z1,z2,z3,z4,z5: TBigInteger; begin inc(c); //if (c > 10) then halt; Debug('LenA:'+IntToStr(a.bitLength()) +' # '+ a.bigIntegerToStr); Debug('LenB:'+IntToStr(b.bitLength()) +' # '+ b.bigIntegerToStr); m := Max(a.bitLength(),b.bitLength()); Debug('max: '+IntToStr(m)); if (m <= 2) then begin result := a.multr(b); //WriteLn('lw:'+result.bigIntegerToStr); end else begin Debug('Durchgang: '+IntToStr(c)); Debug('----------------'); n := (m div 2); (****************** X ***********************) //BigInteger xH = x.shiftRight (n); xh := a.shrR(n)^; Debug('xh:'+xh.bigIntegerToStr()); . . . result^ := z5; end;
Delphi-Quellcode:
Kann mir vielleicht jemand sagen, an welcher Stelle ich den Speichertzugriffsfehler haben könnte?
function TBigInteger.shrR(n: Integer): PBigInteger;
var tmp: TBigInteger; begin tmp := copy()^; tmp.shiftright(n); result := tmp.copy(); end; Danke :firejump: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz