Help Center
Help CenterFreeBASIC

Peekfunction

Gets the value of an arbitrary type at an address in memory

Memory Functionsfunctiondocumented

Syntax

Declare Function Peek ( ByVal address As Any Ptr ) ByRef As UByte
Declare Function Peek ( datatype, ByVal address As Any Ptr ) ByRef As datatype

Parameters

NameDescription
addressThe address in memory to get the value from.
datatypeThe type of value to get. If omitted, UByte is assumed.

Description


This procedure returns a reference to the value in memory given by a memory address, and is equivalent to:
*cast(ubyte ptr, address)
or
*cast(datatype ptr, address)
thus this keyword can also be used to assign a value to a memory location, similarly to Poke.

Note: When using Peek, the -exx compiler option does not add code for null-pointer checking (no nullity test on the value of address).

Remarks

Usage


Peek( [ datatype, ] address )

Differences from QB


  • Peek did not support the datatype parameter in QB, and could only return individual bytes.
  • Peek returns a reference in FB, so can be used to set the memory contents of the address, like with Operator * (Value Of).
  • DEF SEG isn't needed anymore because the address space is 32-bit flat in FreeBASIC.

See also


Example


Dim i As Integer, p As Integer Ptr

p = @i



Poke Integer, p, 420

Print Peek(Integer, p)

will produce the output:

420

Reference

  • Documented in KeyPgPeek.html