# PEC 2 **Índice** - [PEC 2](#pec-2) - [4. Estructura de memoria](#4-estructura-de-memoria) - [4.1. Memoria](#41-memoria) - [4.1.1. Información y espacio](#411-información-y-espacio) - [4.2. Memoria estática](#42-memoria-estática) - [4.3 Relación entre objetos y memoria](#43-relación-entre-objetos-y-memoria) - [4.4. El tipo puntero en C](#44-el-tipo-puntero-en-c) - [4.4.1. Declaración](#441-declaración) - [4.4.2. Operaciones](#442-operaciones) - [4.4.2.1. Asignación](#4421-asignación) - [4.4.2.2. Contenido](#4422-contenido) ## 4. Estructura de memoria Conceptos básicos de los efectos que produce un programa en la memoria. ### 4.1. Memoria Un programa no se ejecuta desde el disco, sino que se carga en la memoria RAM (Random Access Memory). La memoria es un recurso finito y limitado, por lo que es importante gestionarla de forma eficiente. Por este motivo, el SO se encarga de ir moviendo los programas entre la memoria y el disco, pero desde la vista del programador debemos entender que el programa siempre está cargado en memoria. Cada posición está identificada unívocamente con un valor numérico (su dirección) y tiene capacidad de 8 bytes. Cuando asignamos un valor (constante o variable) se asigna un rango de direcciones donde pondrá su valor. #### 4.1.1. Información y espacio
Tipo Tipo C Tamaño en bytes Rango de valores
Entero char 1 -128 to 127 o 0 to 255
Entero unsigned char 1 0 a 255
Entero signed char 1 -128 a 127
Entero int 2 o 4 -32,768 a 32,767 o -2,147,483,648 a 2,147,483,647
Entero unsigned int 2 o 4 0 a 65,535 o 0 a 4,294,967,295
Entero short 2 -32,768 a 32,767
Entero unsigned short 2 0 a 65,535
Entero long 4 -2,147,483,648 a 2,147,483,647
Entero unsigned long 4 0 a 4,294,967,295
Real float 4 1.2E-38 a 3.4E+38 -> 6 decimales
Real double 8 2.3E-308 a 1.7E+308 -> 15 decimales
Real long double 10 3.4E-4932 a 1.1E+4932 -> 19 decimales
### 4.2. Memoria estática ### 4.3 Relación entre objetos y memoria ### 4.4. El tipo puntero en C #### 4.4.1. Declaración #### 4.4.2. Operaciones ##### 4.4.2.1. Asignación ##### 4.4.2.2. Contenido