Este documento describe la asignación dinámica de memoria en C++. Explica que los operadores new y delete permiten asignar y liberar memoria desde el heap del sistema. Muestra la sintaxis para declarar punteros, asignar memoria usando new, acceder a los valores usando el operador *, y liberar la memoria con delete. También define qué son los punteros y cómo se usa NULL para indicar punteros nulos.
TALLER DE TECNOLOGIA GRUPO 6, SEGUNDO PERIODO 10-2..docx.pdf
Punteros clas5
1. Universidad Nacional Experimental
“Francisco de Miranda”
Aprendizaje Dialógico Interactivo
Unidad Curricular: Computación II.
Realizado por:
Burgos José
Santa Ana de Coro; Abril del 2013
2. Definición
La asignación dinámica de memoria es una técnica de programación
muy valiosa.
Tamaños apropiados de memorias pueden ser asignados desde la
memoria libre disponible en el heap del sistema y retornada a este
cuando ya no se necesite.
La asignación y devolución de memoria es llevada a cabo directamente
por el programador. En c++ se utilizan los operadores unarios new y
delete para lleva a cabo estas tareas.
3. Sintaxis
int *p; //Declara un puntero a entero
p=new int; // Memoria para un entero es asignada desde el heap del
sistema
// y p apunta hacia ella.
*p=6;
delete p; // Devuelve la memoria apuntada por p al heap del
sistema.
p=new int; // p ahora apunta a una nueva localidad de memoria.
El formato general es: <puntero a un tipo> = new <tipo>;
delete <puntero a un tipo>;
4. Puntero
Un puntero es una variable cuyo valor es la dirección de memoria de otra
variable, los punteros , al igual que una variable común, pertenecen a un tipo
(type), por lo que se dice que un puntero “apunta a” ese tipo que pertenece .
Ejemplo: int * p // Declara un puntero a entero
char* p; // puntero a char.
Una variable de tipo puntero no puede apuntar a cualquier variable anónima; debe
apuntar a variables anónimas de un determinado tipo. El tipo de la variable anónima
debe ser incluido en la especificación del tipo de la variable puntero.
5. Reglas
Un puntero es una variable como cualquier otra.
Una variable puntero contiene una dirección que apunta a otro espaci
o de memoria.
En esa posición o espacio de memoria se almacenan los datos a los
que apunta el puntero.
Un puntero apunta a una variable de memoria.
6.
7. Punteros NULL
Un puntero no inicializado tiene una valor aleatorio hasta que se inicialice,
por lo tanto es necesario que los punteros utilicen direcciones válidas.
Un puntero nulo no direcciona ningún dato válido en memoria, este se
utiliza para conocer cuando un apuntador direcciona a un espacio de
memoria válido. Para declarar un puntero nulo se utiliza la macro
NULL, definida en el archivo de cabecera cstdlib.h
char* ptr_char = NULL;
if (ptr_char != NULL){
<accion 1>;
<accion 2>;
...
<accion n>; }
Nunca se utiliza un puntero nulo para referenciar un valor.