qck.hlp (Table of Contents; 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.
String Array Storage
                                                 Contents  Index  Back
──────────────────────────────────────────────────────────────────────────────
 String Array Storage
 
 ■ A string array has three parts in memory:
 
   Part of String Array           Memory Location
   ═══════════════════════════    ══════════════════════════════════════════
   Array descriptor               Near memory (DGROUP)
   Array of string descriptors    Near memory (DGROUP)
   String data                    Far heap
 
 ■ A space allocated for a string array can be either static or dynamic:
 
   Type        Description
   ═══════     ═════════════════════════════════════════════════════════════
   Static      Variable-length strings whose descriptors reside in a
               permanently allocated array in DGROUP; this array of
               descriptors is fixed when compiled; cannot be altered while
               a program is running.
   Dynamic     String array whose array of descriptors can be defined or
               changed at run time with a DIM, REDIM, or ERASE statement.
               Dynamic arrays declared local to a procedure are deallocated
               when control leaves the procedure. As with static string
               arrays, dynamic string array descriptors also reside in
               DGROUP, but may change in number or location during program
               execution.
 
 ■ The location of the string data itself is independent of the static or
   dynamic status of a string array.
 
 See: Array Storage Summary