Difference between revisions of "$DYNAMIC"

From QB64 Wiki
Jump to navigation Jump to search
imported>Clippy
m
imported>Clippy
m
Line 13: Line 13:
 
* Dynamic arrays can also be resized by the program user's input if desired.
 
* Dynamic arrays can also be resized by the program user's input if desired.
 
* [[$DYNAMIC|Dynamic]] arrays MUST be [[REDIM]]ensioned if [[ERASE]] or [[CLEAR]] are used to clear the array values.  
 
* [[$DYNAMIC|Dynamic]] arrays MUST be [[REDIM]]ensioned if [[ERASE]] or [[CLEAR]] are used to clear the array values.  
 +
 +
 +
''Example:'' Re-dimensioning a $DYNAMIC array using [[_PRESERVE]].
 +
{{CodeStart}} '' ''
 +
{{Cl|REM}} {{Cl|$DYNAMIC}}            'create dynamic arrays only
 +
{{Cl|DIM}} array(10)            'create array with 11 elements
 +
{{Cl|FOR...NEXT|FOR}} i = 0 {{Cl|TO}} 10
 +
  array(i) = i: {{Cl|PRINT}} array(i); 'set and display element values
 +
{{Cl|NEXT}}
 +
{{Cl|PRINT}}
 +
{{Cl|REDIM}} {{Cl|_PRESERVE}} array(10 {{Cl|TO}} 20)
 +
{{Cl|FOR...NEXT|FOR}} i = 10 {{Cl|TO}} 20
 +
  {{Cl|PRINT}} array(i);
 +
{{Cl|NEXT}}
 +
{{Cl|END}} '' ''
 +
{{CodeEnd}}
 +
{{OutputStart}}
 +
1  2  3  4  5  6  7  8  9  10
 +
 +
1  2  3  4  5  6  7  8  9  10
 +
{{OutputEnd}}
  
  

Revision as of 01:05, 4 May 2011

The $DYNAMIC Metacommand allows the creation of dynamic(changeable) array sizes.


== Syntax == REM $DYNAMIC


  • Metacommands require a REM or apostrophy (') before them.
  • Metacommands should be placed at the program start in the main module.
  • Dynamic arrays can be resized using REDIM. The array's type cannot be changed.
  • All data in the array will be lost when redimensioned in QBasic.
  • In QB64, REDIM _PRESERVE can save previous array data.
  • Dynamic arrays can also be resized by the program user's input if desired.
  • Dynamic arrays MUST be REDIMensioned if ERASE or CLEAR are used to clear the array values.


Example: Re-dimensioning a $DYNAMIC array using _PRESERVE.

REM $DYNAMIC 'create dynamic arrays only DIM array(10) 'create array with 11 elements FOR i = 0 TO 10 array(i) = i: PRINT array(i); 'set and display element values NEXT PRINT REDIM _PRESERVE array(10 TO 20) FOR i = 10 TO 20 PRINT array(i); NEXT END

1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10


See also:




Navigation:
Keyword Reference - Alphabetical
Keyword Reference - By Usage
Main Wiki Page