One of the main motivations in the development of computers was data processing. One of the earliest punched card machines (tabulation machine) were used to help process data for the 1890 U.S. Census. Thus in programming languages data types were so important, as there are tools and methods to process data according to their type.
The process of allocating memory while a program is running is called dynamic memory allocation. In C programming, dynamic memory allocation is achieved with the standard library functions malloc(), calloc(), realloc() and free().
To proceed to the next sections in our discussion on C programming language, we should learn the concept of void pointers, i.e. pointers of no specific type, and type casting, i.e. manually changing the data type of a variable. Type conversion can happen automatically (implicitly) or manually (explicitly). The later is termed as type-casting.