Contenido del Curso
C Básico
C Básico
Los punteros están a nuestro alrededor
Probablemente ya estés familiarizado con la idea de punteros por tus experiencias cotidianas. Piensa en cómo tu casa tiene una dirección única. Es a través de esta dirección que recibes paquetes de Amazon, cartas y esa pizza que acabas de pedir. Esencialmente, para llegar a ti, las personas y los servicios utilizan la dirección de tu hogar.
Cuando una casa cambia de manos, es esencial actualizar los registros para reflejar los detalles del nuevo propietario. Y si tu familia crece, es crucial agregar a los nuevos miembros a los registros asociados con la dirección.
Los registros de propiedad se actualizan constantemente. Algunos datos se modifican, algunos se eliminan, mientras que se agregan nuevos detalles.
Consideremos otro ejemplo: desarrollar un sistema de seguridad para tu oficina. El desarrollador podría no saber el número exacto de empleados que tendrás. Entonces, en el código, podrían asignar espacio para 100 empleados:
Esta configuración es bastante básica y está inherentemente limitada desde el principio.
Pero, ¿qué pasa si tu empresa se expande, lanza un nuevo departamento y recluta a 30 nuevos empleados calificados, llevando el total a 130? Sin embargo, el sistema de seguridad solo está configurado para reconocer a 100. ¿Reformas todo el sistema de seguridad o dejas ir a los nuevos contratados? Este dilema se aborda a través de la asignación dinámica de memoria.
Asignación Dinámica de Memoria
En el lenguaje C, hay tres tipos de asignación de memoria:
- Asignación estática, que ocurre en tiempo de compilación. Por ejemplo, cuando el compilador ve que has declarado una variable
int
, asigna 4 bytes para ella; - Asignación automática de memoria tiene lugar dentro de las funciones, particularmente cuando las variables se declaran dentro de estas funciones;
- Asignación dinámica de memoria se destaca porque la memoria se asigna no en la etapa de compilación, sino durante la ejecución real de tu programa.
La asignación dinámica de memoria le da al programador control total, ya que supervisa tanto la asignación como la desasignación de memoria. Este enfoque permite a un programador optimizar significativamente el rendimiento de un programa, con los punteros desempeñando un papel fundamental en este proceso.
¡Gracias por tus comentarios!