Message d'erreur

Sonya -  
 Sonya -
Salut,
j'ai ecris un programme simple en turbo pascal,à l'execution Le curseur s’arrête à writeln(p) ; et affiche le message d’erreur suivant :
ERROR 64 cannot read or write variable of this type
Et Je voudrais s’il vous plait afficher l’adresse de (p) .
Please help me.
Voila mon code :

program exemple1;
type pinteger = ^integer;
var q : integer;
p : pinteger;

begin
p:=nil;
q:=100;
new(p);
p^:=q;
writeln(p^);
writeln(p);
end.
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. BoOst
     
    salut

    oula ! c'est (très) loin pour moi le turbo-pascal, mais bon je vais tenter de t'aider :)
    que veut tu fire exactement, tu veut afficher l'adresse memoire du pointeur ?

    parce que en affichant "p^", tu affiche la valeur de l'espace memoire représentée par l'adresse du pointeur.
    mais en affichant "p", tu affiche l'adresse memoire elle même (et non son contenu)
    0
  2. BoOst
     
    J'ai oublié de précisier que visiblement la fonction "writeln" de turbo pascal ne permet pas d'afficher l'adresse d'un pointeur directement,
    si c'est vraiment ce que tu veut faire, il faudra la convertir en texte.
    0
  3. Son_ya
     
    Merci de votre reponse mais je ne sais pas la convertir en texte ,si vous pouvez m'ecrire l'instruction?
    Merci d'avance.
    0
  4. BoOst
     
    je dirais

    writeln(Seg(p^),":",Ofs(p^));
    ou
    writeln(Seg(p),":",Ofs(p));

    désolé mais me souviens plus du tout :(
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Sonya
     
    Bonjour,

    Merci de votre reponse.

    @+
    0