![]() |
![]() |
![]() |
![]() |
![]() |
|
The number of bytes allocated for each place in an array is
determined by the objects to be stored. Suppose, for example,
that you define the cylinder class like this:
class cylinder {public: double radius, length;};
Then, if an array is to hold cylinders, each of which contains
floating-point numbers of type double for the cylinder's
radius and length, each place will consist of 16 bytes in most
implementations:
1 <-- Array --> 2
| index |
v v
------------------------------- ----------------------
radius length radius
| | |
v v v
--------------- --------------- --------------- ----
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
| | | | | | | | | | | | | | | | | | | | | | | | | |
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
^ ^ ^ ^
| | | |
112 120 128 136
In this example, the first cylinder is described by the 16 bytes at memory addresses 112 through 227. Of these 16 bytes, the first 8 bytes contain a floating-point number that represents the cylinder's radius, and the second 8 bytes contain a floating-point number that represents the cylinder's length. The second cylinder is described by the 16 bytes starting at memory address 128.