Einzelnen Beitrag anzeigen

adk

Registriert seit: 24. Feb 2010
9 Beiträge
 
#5

Re: Double-Pointer als Int-Parameter übergeben und zurück

  Alt 25. Feb 2010, 08:25
Zitat von himitsu:
Delphi-Quellcode:
procedure ProcedureA(Gewicht : double);

var
  A_pGewicht : PInteger;
  B_pGewicht : PInteger;
  B_Gewicht : double;

//A_pGewicht := nil; nicht verwendet, da eh gleich überschrieben
New(A_pGewicht);
A_pGewicht := @Gewicht; // Zeiger auf Gewicht
// der Zeiger auf den mit New reservierten Speicher wird überschrieben = Speicherleck

//ProcedurB(A_pGewicht^);
B_intWert := A_pGewicht^; // Byte 1 bis 4 von Gewicht

B_pGewicht := @B_intWert; // Zeiger auf B_intWert
B_Gewicht := B_pGewicht^; // Wert von B_intWert = Byte 1 bis 4 von Gewicht
Dies ist (entschuldigung) etwas chaotisch. Ich erwarte natürlich keine 100% passende Lösung (will ja selbst noch zu Lösung beitragen ) jedoch verstehe ich es nicht.

Zitat von himitsu:
oder belaß es einfach bei einem konvertierten Pointer:
Delphi-Quellcode:
procedure ProcedureA(Gewicht : double);
begin
  ProcedurB(Integer(@pGewicht));
end;

procedure ProcedurB(intWert : Integer);
var
  B_Gewicht : double;
begin
  B_Gewicht := PDouble(intWert)^;
end;
Geht leider nicht.
  Mit Zitat antworten Zitat