The main advantage of dynamic memory allocation is flexibility: the sizes of structures (or upper bounds on the sizes) do not need to be known in advance, so any size input that does not exceed available memory is easily handled. There are costs, however. Repeated calls to allocate and de-allocate memory place considerable strain on the operating system and can result in "thrashing" and decreased performance. In addition, one has to be very careful to "clean up" and de-allocate any memory that is allocated dynamically, to avoid memory leaks.
The general rule of thumb is, if you can allocate memory statically, do it, because the result will probably be faster code that is easier to debug. But if you need to handle wide-ranging input sizes, then dynamic memory allocation is the way to do it.
By using dynamic memory allocation we can prevent wastege of memory.
What is pseudo code?
Pseudo code
There are two types of memory allocations. 1. Static memory allocation 2. Dynamic memory allocation
Constructors are necessary to initialize classes. It allows to avoid to a lot of problems with unauthorized access of memory. Dynamic allocation makes possible allocation of memory during execution of program. If you do not use dynamic allocation, all required memory will be allocated during initialization phase (constructors are usually responsible for that). But you can't use more memory. Dynamic allocation was designed to overcome such problems.
Linked lists use dynamic memory allocation (also called "heap memory allocation", as the linked list is stored in heap memory).
Not freeing it when you no longer need the memory.
Static memory allocation is memory allocated on the "stack" and cannot be resized after the initial allocation, while dynamic memory allocation is memory allocated in the "heap", and can be dynamically expanded and shrunk as necessary.
Static Memory Allocation: Allocating the total memory requirements that a data structure might need all at once without regard for the actual amount needed at execution time. Dynamic Memory Allocation: The opposite strategy of static memory allocation - Dynamic Memory Allocation, involves allocating memory as-needed.
This is where you allocate the data that you have. This gives you the opportunity to have everything in order.
There are two types of memory allocations. 1. Static memory allocation 2. Dynamic memory allocation
Memory allocation is not necessary to display a matrix.
Constructors are necessary to initialize classes. It allows to avoid to a lot of problems with unauthorized access of memory. Dynamic allocation makes possible allocation of memory during execution of program. If you do not use dynamic allocation, all required memory will be allocated during initialization phase (constructors are usually responsible for that). But you can't use more memory. Dynamic allocation was designed to overcome such problems.
Linked lists use dynamic memory allocation (also called "heap memory allocation", as the linked list is stored in heap memory).
Not freeing it when you no longer need the memory.
Dynamic memory allocation
Static memory allocation occurs at compile time where as dynamic memory allocation occurs at run time.
alloc :- to allocate memory. calloc :- to free the memory.
Static storage allocation is when a program dedicates an amount of memory for its use at the start of the program. Dynamic storage allocation is when a program only takes storage as it needs it.
Single-user contiguous Fixed Partitions Dynamic Partitions Relocatable Dynamic Partitions Paged Memory Allocation Demand Paging Working Set Segmented Memory Allocation Segmented/Demand Page Memory Allocation -------Taken from "Understanding Operating Systems. 6th edition pg 99