Returns a reference to memory offset from an address
Syntax
Declare Operator [] ( ByRef lhs As T Pointer, ByRef rhs As Integer ) As T
Note that Operator [] (Pointer index) returns a reference. As of 02.27.07, FreeBASIC syntax does not support returning references. When it does, this syntax will need to be changed.
Usage
result = lhs [ rhs ]
Parameters
lhs
The base address.
rhs
A signed offset from lhs.
T
Any data type.
Description
This operator returns a reference to a value some distance in memory from a base address. It is essentially shorthand for "
*(lhs + rhs)"; both do exactly the same thing. Like pointer arithmetic, any type of
Pointer can be indexed except for an
Any Pointer. Also, like pointer arithmetic, it is up to the user to make sure meaningful data is being accessed.
Example
'' initialize a 5-element array
Dim array(4) As Integer = { 0, 1, 2, 3, 4 }
'' point to the first element
Dim p As Integer Ptr = @array(0)
'' use pointer indexing to output array elements
For index As Integer = 0 To 4
Print p[index]
Next
Will give the output,
0 1 2 3 4
Differences from QB
See also