qb45advr.hlp (Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
$STATIC and $DYNAMIC Metacommands Details
  QuickSCREEN      Details      Example      Contents      Index
──────────────────────────────────────────────────────────────────────────────
$STATIC and $DYNAMIC Metacommand Details
 
The $STATIC and $DYNAMIC metacommands tell the compiler how to allocate
memory for arrays. Neither of these metacommands takes an argument:
 
  'Make all arrays dynamic.
  '$DYNAMIC
 
$STATIC sets aside storage for arrays during compilation. When the
$STATIC metacommand is used, the ERASE statement reinitializes all array
values to zero (numeric arrays) or the null string (string arrays)
but does not remove the array. The REDIM statement has no effect
on $STATIC arrays.
 
$DYNAMIC allocates storage for arrays while the program is running.
This means that the ERASE statement removes the array and frees
the memory it took for other uses. You can also use the REDIM statement
to change the size of a $DYNAMIC array.
 
The $STATIC and $DYNAMIC metacommands affect all arrays except implicitly
dimensioned arrays (arrays not declared in a DIM statement). Implicitly
dimensioned arrays are always allocated as if $STATIC had been used.