{{DISPLAYTITLE:_OFFSET (function)}} The [[_OFFSET]] function returns the memory offset of/within a given variable. {{PageSyntax}} : {{Parameter|offset%&}} = [[_OFFSET]]({{Parameter|variable}}) {{PageDescription}} * The {{Parameter|variable}} parameter can be any type of numerical or [[STRING|string]] variable name. * API [[DECLARE LIBRARY|LIBRARY]] parameter or [[TYPE|type]] names may include '''lp, ptr''' or '''p''' which designates them as a pointer type. * _OFFSET function return values should be stored in [[_OFFSET]] type variables. As no other variable type is 'elastic' like [[_OFFSET]], there can be no guarantee that any other variable type can hold the value of an _OFFSET. * Returns the memory offset of variables, user-defined-types & elements, arrays & indices and the base offset of [[STRING]]s. * Offset values are currently only useful when used in conjunction with [[_MEM]] or [[DECLARE LIBRARY]] procedures. * OFFSET values are used as a part of the [[_MEM]] variable [[type]] in QB64; {{Parameter|variable}}.OFFSET returns or sets the current position in memory. * '''Warning:''' QB64 variable length strings can move about in memory at any time. If you get the _OFFSET of a variable length sting on one line and use it on the next it may not be there anymore.''' To be safe, move variable length strings into fixed length strings first.''' {{PageExamples}} ''Example:'' Using memcpy with the _OFFSET function values as parameters. {{CodeStart}} '' '' {{Cl|DECLARE DYNAMIC LIBRARY|DECLARE CUSTOMTYPE LIBRARY}} {{Cl|SUB}} memcpy ({{Cl|BYVAL}} dest {{Cl|AS}} {{Cl|_OFFSET}}, {{Cl|BYVAL}} source {{Cl|AS}} {{Cl|_OFFSET}}, {{Cl|BYVAL}} bytes {{Cl|AS}} {{Cl|LONG}}) {{Cl|DECLARE LIBRARY|END DECLARE}} a$ = "1234567890" b$ = "ABCDEFGHIJ" memcpy {{Cl|_OFFSET (function)|_OFFSET}}(a$) + 5, {{Cl|_OFFSET (function)|_OFFSET}}(b$) + 5, 5 {{Cl|PRINT}} a$ '' '' {{CodeEnd}} {{OutputStart}}12345FGHIJ {{OutputEnd}} {{PageSeeAlso}} * [[_OFFSET]] {{text|(variable type)}} * [[DECLARE LIBRARY]] * [[DECLARE DYNAMIC LIBRARY]] * [[Using _OFFSET]] {{PageNavigation}} <