In the following example a fixed-length string s with size 19, a pointer p and an unsigned integer n are declared. With the built-in function aof() (address of) the descriptor address of string s is assigned to p. In SharpBASIC a string descriptor has the format [addr:size], a double dword in 32 bits. So p+4 points to the size of the string and is assigned to n with the built-in function bya() (by address).
Code: Select all
' SharpBASIC ptr6
' -----------------
incl "lib/sys.sbi";
dim s: str * 19;
dim p: ptr;
dim n: uint;
main do
' address of descriptor
p = aof(s);
' size by address in second dword field
n = bya(p + 4);
' output: 19
print(n);
end
