Hi SJain,

we just found your mail by chance in the archive. I did not receive it the
normal way :(

Anyway ...

> I shall be grateful if someone could explain how to get the 'value' of a 
> pointer
> to a symbol. It is said in the documentation that evaluation of, for example,
> the function * returns its address or the pointer to it. Evaluation of a 
> symbol
> however returns it's value. How to get the pointer to the symbol? This is just
> curiosity as Ms Mia's blog says one can know what is stored where in memory.

The function 'adr' gives you the low-level pointer to the symbol's cell:

   : (adr '*)
   -> 389215306216

So 389215306216 is the pointer to the symbol.

       389215306216
            |
            V
      +-----+-----+
      | "*" | VAL |
      +-----+-----+

VAL in turn is a pointer here, pointing to the code for multiplication.

   : *
   -> 24325940465

To access the value from the raw pointer you can use 'struct':

   : (struct 389215306216 T)
   -> 24325940465

Does this help?

☺/ A!ex

-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to