KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q38069: "Division By Zero" Dynamic, Fixed-Length STRING*1, 64K+ Array

Article: Q38069
Product(s): See article
Version(s): 4.00 4.00b 4.50
Operating System(s): MS-DOS
Keyword(s): ENDUSER | buglist4.00 buglist4.00b buglist4.50 B_BasicCom | mspl13_basic
Last Modified: 13-DEC-1989

A DIM statement gives the following error at run time when you
dimension a dynamic, fixed-length STRING*1 array 64K or larger (which
requires compiling with the /AH option):

   "Division by zero"

Microsoft has confirmed this to be a problem in QuickBASIC Versions
4.00, 4.00b, and 4.50 and in Microsoft BASIC Compiler Versions 6.00
and 6.00b for MS-DOS and MS OS/2 (buglist6.00, buglist6.00b). The
"Division by zero" error occurs both in the QB.EXE editor and in a
compiled .EXE program. This problem was corrected in Microsoft BASIC
PDS Version 7.00 (fixlist7.00).

This problem does not occur with static fixed-length STRING*1 arrays,
or any static or dynamic array smaller than 64K.

The following is a code example:

' This program must be compiled with the /AH option.
' A static array (limited to 64K or smaller) is ok:
DIM darray(1 TO 4096, 1 TO 16) AS STRING * 1
REM $DYNAMIC
' A dynamic, STRING*1, 64K+ array gives "DIVISION BY ZERO" at run time:
DIM carray(1 TO 4096, 1 TO 16) AS STRING * 1

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.