From the data-type perspective, malloc
generates a
pointer that is said to be of type void*
. Such void*
pointers have the
property that they can be cast into pointers of any type.
To cast the result of a call to malloc
into a form suitable for
assignment to a trade
object, you preface the call to
malloc
by a parentheses-enclosed specification of the appropriate
pointer data type.
*-- Converts address into the form required for | assignment to trade pointers | | *-- Produces address of memory | | chunk reserved for a trade v v --------------- ------------------------------ tptr = (struct trade*) malloc (sizeof (struct trade));
Note that the specification of the data type includes an asteriskthe
data type is to be a pointer to a trade
object, rather than a
trade
object.
Also, remember that malloc
-containing statements require the C
compiler to create executable code that allocates memory for a trade
object at run time, rather than at compile time.