Difference Between Static And Dynamic Storage Allocation


Dynamic storage is storage, such as RAM  that loses all information when power is turned off.

Computer storage in which information at a certain position is not always available instantly because it is moving, as in an acoustic delay line or magnetic drum. Also known as dynamic memory.

This is a computer storage consisting of capacitively charged circuit elements which must be continually refreshed or recharged at regular intervals.

 In dynamic memory allocation, when memory is allocated the memory size can be changed.

What is dynamic memory allocation in OS?

Dynamic memory allocation is when an executing program requests that the operating system give it a block of main memory. The program then uses this memory for some purpose. … The heap may develop “holes” where previously allocated memory has been returned between blocks of memory still in use.

What is the function of dynamic storage management?

Dynamic memory management involves the use of pointers and four standard library functions, namely, malloc, calloc, realloc and free. The first three functions are used to allocate memory, whereas the last function is used to return memory to the system (also called freeing/deallocating memory).


Static storage is a computer storage such that information is fixed in space and available at any time, as in flip-flop circuits, electrostatic memories, and coincident-current magnetic-core storage.

In the static memory allocation, variables get allocated permanently. … In static memory allocation, once the memory is allocated, the memory size can not change

What is use of static variable?

Static variables, by contrast, are variables associated with a class itself, rather than a particular instance of that class. Static variables are used to keep track of information that relates logically to an entire class, as opposed to information that varies from instance to instance.

How static variables are stored in memory?

The static variables are stored in the data segment of the memory. The data segment is a part of the virtual address space of a program. All the static variables that do not have an explicit initialization or are initialized to zero are stored in the uninitialized data segment( also known as the BSS segment).

Memory allocation process



S.NoStatic Memory AllocationDynamic Memory Allocation
1In the static memory allocation, variables get allocated permanently.In the Dynamic memory allocation, variables get allocated only if your program unit gets active.
2Static Memory Allocation is done before program execution.Dynamic Memory Allocation is done during program execution.
3It uses stack for managing the static allocation of memoryIt uses heap for managing the dynamic allocation of memory
4It is less efficientIt is more efficient
5In Static Memory Allocation, there is no memory re-usabilityIn Dynamic Memory Allocation, there is memory re-usability and memory can be freed when not required
6In static memory allocation, once the memory is allocated, the memory size can not change.In dynamic memory allocation, when memory is allocated the memory size can be changed.
7In this memory allocation scheme, we cannot reuse the unused memory.This allows reusing the memory. The user can allocate more memory when required. Also, the user can release the memory when the user needs it.
8In this memory allocation scheme, execution is faster than dynamic memory allocation.In this memory allocation scheme, execution is slower than static memory allocation.
9In this memory is allocated at compile time.In this memory is allocated at run time.
10In this allocated memory remains from start to end of the program.In this allocated memory can be released at any time during the program.
11Example: This static memory allocation is generally used for arrayExample: This dynamic memory allocation is generally used for linked list


Advantages of Dynamic memory allocation

  • Data structures can grow and shrink according to the requirement.
    • We can allocate (create) additional storage whenever we need them.
    • We can de-allocate (free/delete) dynamic space whenever we are
      done with them.
  • Dynamic Allocation is done at run time.

Disadvantages of Dynamic memory allocation

  • As the memory is allocated during runtime, it requires more
  • Memory needs to be freed by the user when done. This is important as it is more likely to turn into bugs that are difficult to find.


Static allocation:


1.    Static allocation is done at compile time when you know the size of the array.

2.    The memory size allocated to “data” is static. But it is possible to change content of a static structure without increasing the memory space allocated to it.

3.    Global variables are declared “ahead of time,” such as fixed array.

4.    Lifetime of Static allocation is the entire runtime of program.

5.    It has efficient execution time


1.      In case more static data space is declared than needed, there is waste of space.

2.    In case less static space is declared than needed, then it becomes impossible to expand this fixed size during run time.

Drop your comment.


Author: refuge_2020

Leave a Reply

Your email address will not be published. Required fields are marked *