POKE
Assigns a value to a location in memory.
Syntax:
declare sub Poke ( byval address as any ptr, byref value as ubyte )
declare sub Poke ( datatype, byval address as any ptr, byref value as datatype )
declare sub Poke ( datatype, byval address as any ptr, byref value as datatype )
Usage:
Poke [ datatype, ] address, value
Parameters:
datatype
The type of data at the specified address. If omitted, ubyte is assumed.
address
The location in memory to assign to.
value
The value to assign.
Description:
Poke assigns a value to a location in memory. It is equivalent to
Note: When using Poke, the -exx compiler option does not add code for null-pointer checking (no nullity test on the value of address).
*cast(ubyte ptr, address) = value
When datatype is a user-defined type, Poke assigns value using the type's Operator Let.
or
*cast(datatype ptr, address) = valueNote: When using Poke, the -exx compiler option does not add code for null-pointer checking (no nullity test on the value of address).
Examples:
Dim i As Integer, p As Integer Ptr
p = @i
Poke Integer, p, 420
Print Peek(Integer, p)
p = @i
Poke Integer, p, 420
Print Peek(Integer, p)
Will produce the output:
420
Differences from QB:
- Only the byte form were supported in QB.
- DEF SEG isn't needed anymore because the address space is 32-bit flat in FreeBASIC.
See also:
Back to Memory Functions