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 )
`
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
`*cast(ubyte ptr, address) = value`
or
`*cast(datatype ptr, address) = value`
When `datatype` is a user-defined type, `Poke` assigns `value` using the type's `Operator Let`.
Note: When using `Poke`, the -exx compiler option does not add code for null-pointer checking (no nullity test on the value of `address`).
Example
`
Dim i As Integer, p As Integer Ptr
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

- `Peek`