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.