Home Segments Index Top Previous Next

290: Mainline

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 trade structure like this:

struct trade {double price; int number;}; 

Then, if an array is to hold trade objects, each of which contains a floating-point number of type double for the trade object's price and an integer of type int for the trade's number, each place will consist of 12 bytes in most implementations:

                 0    <-- Array -->     1 
                 |        index         | 
                 v                      v 
     ----------------------- ------------------------- 
            price     number        price       number 
              |         |             |           | 
              v         v             v           v 
     --------------- ------- ----------------- ------- 
 -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- 
    | | | | | | | | | | | | | | | | | | | | | | | | | | | 
   -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- 
     ^               ^       ^                 ^ 
     |               |       |                 | 
    100             108     112               120 

In this example, the first trade is described by the 12 bytes at memory addresses 100 through 111. Of these 12 bytes, the first 8 bytes contain a floating-point number that represents the trade's price, and the final 4 bytes contain an integer that represents the number of shares in the trade. The second trade is described by the 12 bytes starting at memory address 112.