When we say int X, the compiler assigns 10 * 2 = 20 bytes of memory to X. Using pointers, dynamic allocation of memory can be done. Dynamic allocation is allocating memory dynamically i.e. at execution time.
If we say
X is not assigned a memory block when it is defined as a pointer, sufficient amount of memory can be assigned to X by using the memory allocation malloc().X = malloc(10 * sizeof (int));
The above statement assigns a block of memory to X whose size is equal to 10 * size of integer quantity. The malloc() returns a pointer to character. But since X is a pointer to int, to maintain the consistency we use typecasting.X = (int*) malloc(10 * sizeof (int));
This is known as dynamic allocation. In dynamic allocation, memory can be allocated and freed as and when required. Hence there is no wastage of space. The only limit being the available space for allocating memory.
Another function calloc can be used instead of malloc(), which initializes to 0, the memory block allocated. While in case of malloc they contain garbage values.
It can be used to append memory to existing memory block. If we have assigned 10 bytes to X using malloc(). And later we decide to add 4 bytes to X, again using malloc(), it will assign 4 bytes but previous 10 bytes will be lost. Thus using realloc() adds 4 bytes to existing 10 bytes.
It frees the specified memory block to be used for other purpose.
C Related Interview Questions
|DBMS Interview Questions||C++ Interview Questions|
|C & Data Structures Interview Questions||Java Interview Questions|
|Go (programming language) Interview Questions||F Sharp (programming language) Interview Questions|
|C preprocessor Interview Questions||R Programming language Interview Questions|
|D Programming Language Interview Questions||Lua (programming language) Interview Questions|
|Embedded C Interview Questions|
Introduction To C-programming
Data Types And Storage Classes
All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd
Wisdomjobs.com is one of the best job search sites in India.