{{DISPLAYTITLE:_MEM (function)}} The [[_MEM]] function returns a _MEM block referring to the largest possible continuous memory region beginning at a variable's offset. {{PageSyntax}} : {{Parameter|memoryBlock}} = [[_MEM]]({{Parameter|referenceVariable}}) ===Unsecure syntax=== : {{Parameter|memoryBlock}} = [[_MEM]]({{Parameter|offset}}, {{Parameter|byteSize}}) {{Parameters}} * The {{Parameter|memoryBlock}} created will hold the {{Parameter|referenceVariable}} or [[arrays|array]] value(s), type and byte size in a separate memory area. * The secure syntax {{Parameter|referenceVariable}} is an existing variable's referenced memory block. * The unsecure syntax's designated {{Parameter|offset}} and {{Parameter|byteSize}} cannot be guaranteed. '''Avoid if possible.''' {{PageDescription}} * The {{Parameter|memoryBlock}} [[_MEM]] type variable holds the following read-only elements: OFFSET, SIZE, TYPE and ELEMENTSIZE. * All values created by memory functions MUST be freed using [[_MEMFREE]] with a valid [[_MEM]] variable type. * '''_MEM function cannot reference variable length [[STRING]] variable values. String values must be designated as a fixed-[[LEN|length]] string.''' {{PageExamples}} ''Example:'' Assigning values to reference variables in memory. {{CodeStart}} '' '' {{Cl|DIM}} {{Cl|SHARED}} m(3) {{Cl|AS}} {{Cl|_MEM}} {{Cl|DIM}} {{Cl|SHARED}} Saved(3) m(1) = {{Cl|_MEM (function)|_MEM}}(x) m(2) = {{Cl|_MEM (function)|_MEM}}(y) m(3) = {{Cl|_MEM (function)|_MEM}}(z) x = 3: y = 5: z = 8 {{Cl|PRINT}} x, y, z Save x, y, z x = 30: y = 50: z = 80 {{Cl|PRINT}} x, y, z RestoreIt {{Cl|PRINT}} x, y, z {{Cl|_MEMFREE}} m(1) {{Cl|_MEMFREE}} m(2) {{Cl|_MEMFREE}} m(3) {{Cl|END}} {{Cl|SUB}} Save (n1, n2, n3) Saved(1) = n1 Saved(2) = n2 Saved(3) = n3 {{Cl|END SUB}} {{Cl|SUB}} RestoreIt {{Cl|_MEMPUT}} m(1), m(1).OFFSET, Saved(1) {{Cl|_MEMPUT}} m(2), m(2).OFFSET, Saved(2) {{Cl|_MEMPUT}} m(3), m(3).OFFSET, Saved(3) {{Cl|END SUB}} '' '' {{CodeEnd}}{{small|Code by SMcNeill}} {{PageSeeAlso}} * [[_MEM]] {{text|(variable type)}} * [[_MEMNEW]], [[_MEMCOPY]] * [[_MEMGET]], [[_MEMPUT]] * [[_MEMFILL]], [[_MEMIMAGE]] * [[_MEMFREE]] {{PageNavigation}} <