fork download
  1. program ideone;
  2.  
  3. {$MODE OBJFPC}{$LONGSTRINGS ON}
  4.  
  5. uses
  6. SysUtils;
  7. var
  8. strValue: String = 'ABCDEFGH';
  9. ptrChar: Pointer;
  10. intAddr: PtrInt;
  11. strAddr: String;
  12. begin
  13. // pobranie adresu na znak 'F' z łańcucha
  14. ptrChar := @strValue[6];
  15.  
  16. // wyświetlenie znaku spod wskaźnika i adresu na który wskazuje
  17. WriteLn('Value: ':20, PChar(ptrChar)^);
  18.  
  19. // wyświetlenie adresu po konwersji liczby na hex-string
  20. WriteLn('Address (hexint): ':20, HexStr(PtrInt(ptrChar), 8));
  21.  
  22. // konwersja adresu na hex-string
  23. strAddr := HexStr(PtrInt(ptrChar), 8);
  24.  
  25. // wyświetlenie adresu jako ciągu znaków
  26. WriteLn('Address (string): ':20, strAddr);
  27.  
  28. // dekonwersja hex-stringa na adres w pamięci
  29. ptrChar := Pointer(StrToInt('0x' + strAddr));
  30.  
  31. // wyświetlenie znaku spod nowego wskaźnika
  32. WriteLn('Value: ':20, PChar(ptrChar)^);
  33. end.
  34.  
Success #stdin #stdout 0s 444KB
stdin
Standard input is empty
stdout
             Value: F
  Address (hexint): 08081815
  Address (string): 08081815
             Value: F