![]() |
![]() |
![]() |
![]() |
![]() |
|
There is a way to wiggle out of C's prohibition of mixed objects,
however. You can tell the C compiler to allocate memory chunks for array
elements such that each chunk is large enough for the larger of
bond_trade objects and stock_trade objects:
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
| | | | | | | | | | | | | | | | | <-- 16 bytes required for
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* stock_trade objects
--------------- ------- -------
^ ^ ^
| | *-- pe_ratio
price number
| | *-- yield
v v v
--------------- ------- ---------------
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
| | | | | | | | | | | | | | | | | | | | | <-- 20 bytes required for
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* bond_trade objects
If you happen to put a stock_trade object in such a chunk,
4 bytes are left unused.