no me queda claro en que situaciones es necesario su uso. Alguien podria darme una mano y explicarmelo
La respuesta es simple,
en todas las situaciones, si quieres hacer programacion en serio.
Te pongo un ejemplo simple, quieres manejar los datos de 10 personas, elaboras tu programa sin memoria dinamica, es decir, solo con memoria estatica, lo compilas, lo corres y funciona bien para 10 personas.
Ahora ¿Que pasa si mas adelante necesitas manejar los datos de 20 personas y no 10? Pues resulta que tu fabuloso programa no sirve para 20, solo para 10, asi que tienes que irte a modificar el codigo, y compilarlo de nuevo. ¿Y si despues necesitas manejar los datos de 100? la misma historia, y asi cada vez que cambies el numero de personas.
¿Y si para prevenir los casos anteriores, te decides por hacer tu programa con un numero alto, que sabes que nunca llenaras, por ejemplo, 10,000 personas? Pues entonces estaras desperdiciando memoria, si solo utilizas espacio para 10, tendras 9,990 espacios desperdiciados, memoria que podria ser utilizada para otros programas que tambien se esten ejecutando en la misma maquina.
Con la memoria dinamica nunca tendras ese problema, ya que solo utilizaras la memoria justa para cada caso, no necesitaras modificar tu programa y recompilarlo cada vez que cambie el numero de personas, y no desperdiciaras espacio en caso que el numero de personas sea pequeño en algunos casos y no grande.
Saludos