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:

    Under the species of Syndicalism and Fascism there appears for the first time in Europe a type of man who does not want to give reasons or to be right, but simply shows himself resolved to impose his opinions.
    José Ortega Y Gasset (1883–1955)

    I nightly offer up my prayers to the throne of grace for the health and safety of you all, and that we ought all to rely with confidence on the promises of our dear redeemer, and give him our hearts. This is all he requires and all that we can do, and if we sincerely do this, we are sure of salvation through his atonement.
    Andrew Jackson (1767–1845)