+ 2
what is dynamic memory allocation in c programming?
2 Answers
+ 3
A simple explanation would be that dynamic memory allocation is done by your program asking the OS for a block of memory and the OS returning the address of the first byte of the memory block (pointer)
This block of memory is not managed automatically => Allocation and deallocation have to be performed manually
If some memory is not given back (deallocated/freed) and the address of the memory block (handle) is lost, you have a memory leak => No one knows how to access the memory block and no one can deallocate it.
The usefulness of dynamic memory allocation comes from the fact that it's only a runtime memory usage:
-> It won't increase the size of your executable
-> You can allocate only the size you need even if you don't know this information at compile time