0% found this document useful (0 votes)
31 views7 pages

Dynamic Memory Allocation Rough

This document discusses dynamic memory allocation in C. It introduces dynamic memory allocation as a way to change the size of data structures like arrays during runtime. It describes 4 key library functions - malloc() to allocate memory, calloc() for arrays, realloc() to increase/decrease array size, and free() to delete allocated memory. Examples are provided to demonstrate allocating memory for a struct using malloc(), inputting data, and printing the stored values.

Uploaded by

meclinejosefl
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views7 pages

Dynamic Memory Allocation Rough

This document discusses dynamic memory allocation in C. It introduces dynamic memory allocation as a way to change the size of data structures like arrays during runtime. It describes 4 key library functions - malloc() to allocate memory, calloc() for arrays, realloc() to increase/decrease array size, and free() to delete allocated memory. Examples are provided to demonstrate allocating memory for a struct using malloc(), inputting data, and printing the stored values.

Uploaded by

meclinejosefl
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Dynamic Memory Allocation

Introduction
 Array is a collection of items stored in a continuous memory location.
 Can we change the size of the array once it is declared?
 For Eg: int arr[10] = {10,20,30,40,50}
 In the above example the size of the array is declared as 10 but the
array contains only 5 elements. The remaining 5 indices are wasting
the memory resource.
 In another case, if the size of the array is 10 but we need to store 15
elements, now can we change the size of the array?
 The above two cases are made possible with Dynamic Memory
Allocation
Dynamic Memory Allocation
 Dynamic Memory Allocation can be defined as a procedure in
which the size of a data structure (like Array) is changed during the
runtime.
 There are 4 library functions provided by C defined
under <stdlib.h> header file to facilitate dynamic memory
allocation in C programming.
1. malloc()  Used to allocate memory to structure (User defined datatypes)
2. calloc()  To arrays
3. realloc()  Increase/decrease size of array
4. free()  delete the memory
malloc()
 “malloc” or “memory allocation” method in C is used to dynamically
allocate a single large block of memory with the specified size.
Syntax:
ptr = (cast-type*) malloc(byte-size)
For Example:
int *ptr;
ptr = (int*) malloc(100 * sizeof(int));
Since the size of int is 4 bytes, this statement will allocate 400 bytes of
memory. And, the pointer ptr holds the address of the first byte in the
allocated memory.
free()
 “free” method in C is used to dynamically de-allocate the memory.
 The memory allocated using function malloc() is not de-allocated
on their own.
 Hence the free() method is used, whenever the dynamic memory
allocation takes place.
 It helps to reduce wastage of memory by freeing it.
Syntax: free(ptr);
Example

int main(){
struct emp *ptr;

#include<stdio.h> ptr=(struct emp*)malloc(sizeof(struct emp));


#include<stdlib.h>
if(ptr==NULL){
struct emp{ printf("Memory not allocated");
int eno; }
char ename[10]; else{
float sal; printf("Enter eno ename and salary");
scanf("%d%s%f",&ptr->eno,ptr->ename,&ptr->sal);
}; }

printf("The details are as follows: \nThe name %s\nThe eno is %d\nThe


salary is: %f",ptr->ename,ptr->eno,ptr->sal);
}

You might also like