Hola, bienvenido de nuevo. Esta será nuestra última tarea, nuestro último desafío
para nuestra sección de punteros.
En este desafío, quiero que comprenda cómo funciona
la asignación de memoria dinámica. Por lo que necesitará malloc una cadena.
Va a ser bastante básico.
Pero le ayudará a comprender todo
este concepto de asignación de memoria dinámica.
¿Cuáles son las ventajas de la asignación de memoria dinámica?
Bueno, significa que puede asignar suficiente memoria cuando la necesite.
No tienes que desperdiciar memoria. Y si necesita más memoria, puede reasignarla.
Esta tarea solo te hará usar malloc.
Entonces, en este desafío, escribirás un programa que evalúe tu comprensión de la asignación de memoria dinámica.
Quiero que escriba un programa que le permita al usuario ingresar una cadena de texto.
Entonces necesitarás usar scanf. También puede usar git s, no hemos
hablado mucho de eso, pero git s o f git s en el
flujo de entrada estándar le permitirá leer una
cadena que contiene espacios. Recuerde, scanf solo
leerá la cadena hasta un espacio.
Si usa git s, puede leer varias cadenas separadas por espacios, aunque de cualquier manera
está bien, scanf o git s de cualquier manera.
Vas a hacer que el usuario ingrese una cadena. El programa imprimirá el texto
que se ingresó.
Puede parecer muy fácil, pero la diferencia aquí es que el programa utilizará la
asignación de memoria dinámica.
También puede hacer que el usuario ingrese el límite de la
cadena que está ingresando, y luego puede usar eso para malloc, para que sepa cuántos bytes asignar.
Debe crear un puntero de caracteres, solo un puntero de caracteres, no matrices de caracteres.
Quiero que asignes memoria. Recuerde, cuando crea la matriz de
caracteres, la memoria ya está asignada automáticamente en función
del tamaño que
coloque en los corchetes. Y de nuevo, una gran desventaja de eso es
que si intentas ingresar algo más grande que lo que pusiste en el tamaño, tienes que volver a compilar.
Es estático. Esa memoria se asigna en tiempo de compilación.
La memoria dinámica se asigna cuando se ejecuta el programa.
Y así puede determinar cuánta memoria desea asignar en función de lo que ingrese el usuario.
Entonces, nuevamente, pídale al usuario que ingrese un número para la cantidad
de bytes que desea asignar para la cadena.
Luego pida al usuario que ingrese la cadena.
Y debe asignar la memoria correctamente y luego pasar ese puntero de carácter a
scanf o git
sy luego básicamente mostrar el texto que se ingresó.
Y por último, no se olvide de la importante función gratuita.
Siempre desea liberar su memoria cuando haya terminado
de usarla y desea asegurarse de hacerlo para que otros programas
puedan utilizar esa memoria. La memoria es un
recurso escaso, especialmente en los programas en tiempo real de los
sistemas integrados, así que no acapares la memoria, libérala.
Buena suerte y daré una solución en la próxima conferencia. Gracias.