Lab Manual 11
Lab Manual 11
CS118
Programming LAB 11
Dynamic Memory Allocation
Fundamentals
NATIONAL UNIVERSITY OF COMPUTER AND EMERGING SCIENCES
1|Page
Programming Fundamentals Lab
Function Purpose
malloc Allocates the memory of requested size and returns the pointer to the first byte of
allocated space.
calloc Allocates the space for elements of an array. Initializes the elements to zero and
returns a pointer to the memory.
C malloc()
The name "malloc" stands for memory allocation. The malloc() function reserves a block of
memory of the specified number of bytes. And, it returns a pointer of void which can be casted
into pointers of any form.
Syntax:
ptr = (castType*) malloc(size);
Example:
ptr = (int*) malloc(100 * sizeof(float));
The above statement allocates 400 bytes of memory. It's because the size of float is 4 bytes. And,
the pointer ptr holds the address of the first byte in the allocated memory. The expression results
in a NULL pointer if the memory cannot be allocated.
C calloc()
The name "calloc" stands for contiguous allocation. The malloc() function allocates memory and
leaves the memory uninitialized. Whereas, the calloc() function allocates memory and initializes
all bits to zero.
Syntax:
ptr = (castType*)calloc(n, size);
Example:
ptr = (float*) calloc(25, sizeof(float));
The above statement allocates contiguous space in memory for 25 elements of type float.
Programming Fundamentals Lab
C free()
Dynamically allocated memory created with either calloc() or malloc() doesn't get freed on their
own. You must explicitly use free() to release the space.
Syntax:
free(ptr);
This statement frees the space allocated in the memory pointed by ptr.
C realloc()
If the dynamically allocated memory is insufficient or more than required, you can change the
size of previously allocated memory using the realloc() function.
Syntax:
ptr = realloc(ptr, x);
Here, ptr is reallocated with a new size x.
return 0;
}
Programming Fundamentals Lab
LAB TASK
Question # 01:
Write a function that print int, float and char values using void pointers but you
have to declare a single void pointer variable. And its up to user which type of
value it enters.
Question # 02:
Write a C program to create memory for int, char and float variable at run time
by using dynamic memory allocation.
Question # 03:
Question # 04:
Question # 05:
Suppose you want to put a toy in a box, but you only have an approximate idea of
its size. For that, you would require a box whose size is equal to the approximate
size of the toy. Write a program that satisfies the above statement.
Question # 06:
Write a C program in which you have to create memory for text string at run time
using malloc() function, text string will be inputted by the user and displayed.
Using free() function we will release the occupied memory.
Question # 07:
Write a C program in which you have to take three variables from user of type int,
char and float and by using a void pointer, pointing the addresses of all these
variables and print values of all variables along with their addresses .