class
. There is only struct
, which serves
about the same purposes. Let us look at the definition of a named struct:
struct X { int i; float f; char a[20]; };
This defines a record type that has three members, i
, f
and a
. Now, let us consider the following block of code:
{ struct X myX; printf("%d %f %s\n",myX.i, myX.f, myX.a); }
This block of code attempts to print each member of variable myX
.
Note that because myX
is defined in a block, it must be a local
variable. Without a static
keyword, it is also an auto
variable.
Upon entry of this block of code, some memory is allocated for
myX
. However, the memory locations are not initialized. The
individual bytes allocated to myX
most likely contain bit
patterns that do not make any sense.
As a result, as we attempt to print the members of myX
, garbage
is expected. In fact, when the string is printed, the program may even
crash, or print out something that can mess up the configuration of
a terminal.
An auto structure in C must be initialized explicitly before it can be used.
Copyright © 2006-09-05 by Tak Auyeung