VARPTR: Difference between revisions
Jump to navigation
Jump to search
Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link
(Created page with "The '''VARPTR''' function returns an INTEGER value that is the offset part of the variable or array memory address within it's segment. {{PageSyntax}} :: offset% = VARPTR(variable_name[(reference_index%)]) * If variablename is not defined before VARPTR or VARSEG is called, the variable is created and it's address is returned. * Reference index is used to set the offset address of an array index, not necessarily the lowest index. * When a string variable, VAR...") |
TheSnowDog (talk | contribs) m (QBasic capitalisation) Tag: visualeditor |
||
Line 9: | Line 9: | ||
* Reference index is used to set the offset address of an array index, not necessarily the lowest index. | * Reference index is used to set the offset address of an array index, not necessarily the lowest index. | ||
* When a string variable, VARPTR returns the offset address location of the first byte of the string. | * When a string variable, VARPTR returns the offset address location of the first byte of the string. | ||
* Because many | * Because many QBasic statements change the locations of variables in memory, use the values returned by VARPTR and VARSEG immediately after the functions are used! | ||
* Integer array sizes are limited to 32767 elements when using [[VARPTR]] in QB and '''QB64'''!. Create a larger array using [[_BYTE]]. Example: [[DIM]] [[SHARED]] Memory (65535) AS [[_UNSIGNED]] [[_BYTE]] | * Integer array sizes are limited to 32767 elements when using [[VARPTR]] in QB and '''QB64'''!. Create a larger array using [[_BYTE]]. Example: [[DIM]] [[SHARED]] Memory (65535) AS [[_UNSIGNED]] [[_BYTE]] | ||
* '''Warning: DEF SEG, VARSEG , VARPTR, PEEK or POKE access QB64's emulated 16 bit conventional memory block!''' | * '''Warning: DEF SEG, VARSEG , VARPTR, PEEK or POKE access QB64's emulated 16 bit conventional memory block!''' |
Revision as of 10:03, 29 April 2022
The VARPTR function returns an INTEGER value that is the offset part of the variable or array memory address within it's segment.
Syntax
- offset% = VARPTR(variable_name[(reference_index%)])
- If variablename is not defined before VARPTR or VARSEG is called, the variable is created and it's address is returned.
- Reference index is used to set the offset address of an array index, not necessarily the lowest index.
- When a string variable, VARPTR returns the offset address location of the first byte of the string.
- Because many QBasic statements change the locations of variables in memory, use the values returned by VARPTR and VARSEG immediately after the functions are used!
- Integer array sizes are limited to 32767 elements when using VARPTR in QB and QB64!. Create a larger array using _BYTE. Example: DIM SHARED Memory (65535) AS _UNSIGNED _BYTE
- Warning: DEF SEG, VARSEG , VARPTR, PEEK or POKE access QB64's emulated 16 bit conventional memory block!
- It is highly recommended that QB64's _MEM memory system be used to avoid running out of memory.
See also: