C Dynamic Memory Allocation - Type Safety

Type Safety

malloc returns a void pointer (void *), which indicates that it is a pointer to a region of unknown data type. The use of casting is only required in C++ due to the strong type system, whereas this is not the case in C. The lack of a specific pointer type returned from malloc is type-unsafe behaviour according to some programmers: malloc allocates based on byte count but not on type. This is different from the C++ new operator that returns a pointer whose type relies on the operand. (see C Type Safety).


One may "cast" (see type conversion) this pointer to a specific type:

int *ptr; ptr = malloc(10 * sizeof (*ptr)); /* without a cast */ ptr = (int *)malloc(10 * sizeof (*ptr)); /* with a cast */

There are advantages and disadvantages to performing such a cast.

Read more about this topic:  C Dynamic Memory Allocation

Famous quotes containing the words type and/or safety:

    The ideal American type is perfectly expressed by the Protestant, individualist, anti-conformist, and this is the type that is in the process of disappearing. In reality there are few left.
    Orson Welles (1915–1984)

    Firm, united, let us be,
    Rallying round our Liberty;
    As a band of brothers joined,
    Peace and safety we shall find.
    Joseph Hopkinson (1770–1842)