BUG: Intrinsic Version of strlen() FailsLast reviewed: July 22, 1997Article ID: Q115325 |
7.00 | 1.00 1.50
MS-DOS | WINDOWS
kbtool kbbuglist
The information in this article applies to:
SYMPTOMSThe intrinsic version of the strlen() function fails for arrays larger than 65535 bytes. The compiler options needed to reproduce the problem are /Oi and /AL, as shown with the sample code in the "MORE INFORMATION" section of this article.
RESOLUTIONThe problem can be worked around using one of the following methods:
STATUSMicrosoft has confirmed this to be a bug in the products listed above. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available. This is not a problem in Visual C++ 1.0, 32-bit Edition.
MORE INFORMATIONThe following code can be used to demonstrate this problem:
Sample Code
/* Compile options needed: /Oi /AL */ #include <string.h> #include <stdio.h> // #pragma function(strlen) // This line needed to fix the problem char _far sz65535[65536]; void main(void){ size_t length; memset(sz65535, 'A', 65535U); sz65535[65535] = '\0'; length = strlen( sz65535); printf( "Actual Length of string is 65535,\n" "strlen(sz65535) returned %u\n", length); } REFERENCEMore information on #pragma can be found in the online Help for Visual C++ or by typing "qh #pragma" at the MS-DOS prompt in C/C++, version 7.0.
|
Additional reference words: 1.00 1.50 7.00 8.00 8.00c
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |