Imprimer la valeur d'un pointeur

Signaler
Messages postés
121
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
7 août 2018
-
Messages postés
4199
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
-
Bonjour,
A des fins de débogage, je souhaite imprimer la valeur de pointeurs dans un fichier afin de déterminer celui qui pose problème.
Comment fait-on pour transtyper la valeur d'un pointeur en une chaîne imprimable?

6 réponses

Messages postés
302
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
17 septembre 2013
1
bonjour,

regarde la fonction Format. Je crois que %x donne l'adresse d'un pointeur.

Luc.
Messages postés
420
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
6 mai 2019
15
Salut,

Exact, Format le fait, mais c'est '%p'.
Messages postés
4199
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
28
Exact, c'est %p !

on peut donc faire ceci :
procedure TForm1.Button1Click(Sender: TObject);
begin
  showMessage(
    format('ptr [%p] = 0x%.8x = %d',[pointer(sender), longword(pointer(sender)), integer(pointer(sender))])
  );
end;


qui affichera :

"ptr [0180EF40] = 0x0180EF40 = 25227072"

________________________________________________________
besoin de câbles audio, vidèo, informatique pas cher ?
Messages postés
302
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
17 septembre 2013
1
bonjour,

ah oui,
%x affiche en hexadécimal

Luc.
Messages postés
121
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
7 août 2018

Merci:
Je pense que c'est la solution que je cherchais!
Je ne connaissais pas la fonction format et c'est donc la première fois que je l'utilise!
C'est marrant cela me rappelle le fortran IV que
j'ai découvert à la fin des années 60..
et que j'avais appris sur le tas comme j'ai fait pour Delphi!
Messages postés
4199
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
28