AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Interner Fehler C1537 - result Fehler???

Ein Thema von mr.warft · begonnen am 7. Mär 2008 · letzter Beitrag vom 9. Mär 2008
Antwort Antwort
Seite 2 von 2     12   
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#11

Re: Interner Fehler C1537 - result Fehler???

  Alt 8. Mär 2008, 14:50
Genau, wenn du mit Objects arbeiten willst, dann musst du Pointer auf Object verwenden.
Also überall statt TBigInteger eben PBigInteger zurückgeben.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
mr.warft

Registriert seit: 7. Mär 2008
6 Beiträge
 
#12

Re: Interner Fehler C1537 - result Fehler???

  Alt 8. Mär 2008, 14:59
Ich bin in Zeigergeschichten nicht so fit. Wie meinst du das? Kannst du mir das mal an einer der Funktionen zeigen?
  Mit Zitat antworten Zitat
mr.warft

Registriert seit: 7. Mär 2008
6 Beiträge
 
#13

Re: Interner Fehler C1537 - result Fehler???

  Alt 9. Mär 2008, 13:18
hallo,

ich habe mal versucht überall einen PBigInteger zurückgeben zulassen. Ich bekomme aber einen Speicherzugriffsfehler in der Zeile

xh := a.shrR(n)^; und hier der gesamte Code der Funktion.

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:
function TBigInteger.shrR(n: Integer): PBigInteger;
var
   tmp: TBigInteger;
begin
   tmp := copy()^;
   tmp.shiftright(n);
   result := tmp.copy();
end;
Kann mir vielleicht jemand sagen, an welcher Stelle ich den Speichertzugriffsfehler haben könnte?

Danke
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz