Memory allocation is not necessary to display a matrix.
Did you know that memory allocation is not needed to display the matrix? However, the C program is to find the sum of all the elements.
There are two types of memory allocations. 1. Static memory allocation 2. Dynamic memory allocation
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.
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
Segmented page allocation is a type of memory management that uses base and bound registers to determine memory faults, similar to dynamic page allocation. More importantly it is different to dynamic page allocation since the entire process doesn't have to be in memory, similar to using virtual memory paging where the program is broken into pieces. Unlike virtual memory paging, the maximum virtual memory size is limited to the size of physical memory.