INFO: Pointer to Undeclared Structure Does Not Generate Error (50732)
The information in this article applies to:
- Microsoft C for MS-DOS
- Microsoft C for OS/2
- Microsoft Visual C++ for Windows, 16-bit edition 1.0
- Microsoft Visual C++ for Windows, 16-bit edition 1.5
- Microsoft Visual C++ for Windows, 16-bit edition 1.51
- Microsoft Visual C++, 32-bit Editions 1.0
- Microsoft Visual C++, 32-bit Editions 2.0
- Microsoft Visual C++, 32-bit Editions 2.1
- Microsoft Visual C++, 32-bit Editions 4.0
- Microsoft Visual C++, 32-bit Editions 5.0
- Microsoft Visual C++, 32-bit Editions 6.0
This article was previously published under Q50732 SUMMARY
Code that declares a pointer to a nonexistent structure compiles without
warning or error. This is correct behavior.
Note that dereferencing a pointer to an undefined structure, or attempting
to use a field, will produce errors. In general, you are allowed to make a
reference to an undefined struct as long as the operation doesn't need to
know the size of that struct or the names of its fields. This method of
declaration is commonly used in linked lists.
Sample Code
void main (void)
{
struct non_existent *ptr; // legal
struct x
{
struct x *previous; // legal, note that struct x is
struct x *next; // not yet defined
};
}
Modification Type: | Minor | Last Reviewed: | 7/5/2005 |
---|
Keywords: | kbcode kbCompiler kbinfo KB50732 |
---|
|