Describe a situation where dynamic memory allocation might be required in order to make efficient use of your computer's resources. Also describe the precautions that your program should take for the correct and efficient implementation of dynamic memory allocation.