SlideShare una empresa de Scribd logo
1 de 9
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
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.
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>;
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.
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.
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.
Punteros clas5
Punteros clas5

Más contenido relacionado

La actualidad más candente

TIPOS DE DATOS EN JAVA
TIPOS DE DATOS EN JAVATIPOS DE DATOS EN JAVA
TIPOS DE DATOS EN JAVA
berna29
 
Codigo Inseguro
Codigo InseguroCodigo Inseguro
Codigo Inseguro
rezzaca
 
Elementos de programación variables ctes_sist de almacenamiento
Elementos de programación variables ctes_sist de almacenamientoElementos de programación variables ctes_sist de almacenamiento
Elementos de programación variables ctes_sist de almacenamiento
Johnny Montenegro Molina
 

La actualidad más candente (20)

07 - Tipos de datos definidos por el programador en lenguaje C: struct, typed...
07 - Tipos de datos definidos por el programador en lenguaje C: struct, typed...07 - Tipos de datos definidos por el programador en lenguaje C: struct, typed...
07 - Tipos de datos definidos por el programador en lenguaje C: struct, typed...
 
Punteros a Funciones en C
Punteros a Funciones en CPunteros a Funciones en C
Punteros a Funciones en C
 
Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2
 
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
 
TIPOS DE DATOS EN JAVA
TIPOS DE DATOS EN JAVATIPOS DE DATOS EN JAVA
TIPOS DE DATOS EN JAVA
 
Tipos de datos.java
Tipos de datos.javaTipos de datos.java
Tipos de datos.java
 
02 - Tipos de datos escalares en Python 3
02 - Tipos de datos escalares en Python 302 - Tipos de datos escalares en Python 3
02 - Tipos de datos escalares en Python 3
 
Manejo De Memoria
Manejo De MemoriaManejo De Memoria
Manejo De Memoria
 
Codigo Inseguro
Codigo InseguroCodigo Inseguro
Codigo Inseguro
 
Webquest
WebquestWebquest
Webquest
 
05 - Funciones en lenguaje C
05 - Funciones en lenguaje C05 - Funciones en lenguaje C
05 - Funciones en lenguaje C
 
Julio evies computacion
Julio evies computacionJulio evies computacion
Julio evies computacion
 
03 - Entrada y salida en lenguaje C
03 - Entrada y salida en lenguaje C03 - Entrada y salida en lenguaje C
03 - Entrada y salida en lenguaje C
 
Ola k ase
Ola k aseOla k ase
Ola k ase
 
Modelo Persistente
Modelo PersistenteModelo Persistente
Modelo Persistente
 
Modelo Dinamico
Modelo DinamicoModelo Dinamico
Modelo Dinamico
 
Elementos de programación variables ctes_sist de almacenamiento
Elementos de programación variables ctes_sist de almacenamientoElementos de programación variables ctes_sist de almacenamiento
Elementos de programación variables ctes_sist de almacenamiento
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Consulta
ConsultaConsulta
Consulta
 

Similar a Punteros clas5

Curso de C++ (2014)
Curso de C++ (2014)Curso de C++ (2014)
Curso de C++ (2014)
Miriam Ruiz
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
luisabn
 
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
hassanbadredun
 
4 Administracion De Memoria
4 Administracion De Memoria4 Administracion De Memoria
4 Administracion De Memoria
UVM
 
Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacion
Ysaac Ruiz
 
TALLER DE TECNOLOGIA GRUPO 6, SEGUNDO PERIODO 10-2..docx.pdf
TALLER DE TECNOLOGIA GRUPO 6, SEGUNDO PERIODO 10-2..docx.pdfTALLER DE TECNOLOGIA GRUPO 6, SEGUNDO PERIODO 10-2..docx.pdf
TALLER DE TECNOLOGIA GRUPO 6, SEGUNDO PERIODO 10-2..docx.pdf
edepisabellafernande
 

Similar a Punteros clas5 (20)

Apuntadores y direccionamiento
Apuntadores y direccionamientoApuntadores y direccionamiento
Apuntadores y direccionamiento
 
Definición de punteros en C++ en Introducción a la Programación
Definición de punteros en C++ en Introducción a la ProgramaciónDefinición de punteros en C++ en Introducción a la Programación
Definición de punteros en C++ en Introducción a la Programación
 
Gestión Dinámica de la Memoria
Gestión Dinámica de la MemoriaGestión Dinámica de la Memoria
Gestión Dinámica de la Memoria
 
08 - Punteros en lenguaje C
08 - Punteros en lenguaje C08 - Punteros en lenguaje C
08 - Punteros en lenguaje C
 
Estructuras dinámicas de datos
Estructuras dinámicas de datosEstructuras dinámicas de datos
Estructuras dinámicas de datos
 
Curso de C++ (2014)
Curso de C++ (2014)Curso de C++ (2014)
Curso de C++ (2014)
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
 
1.1.5 Gestion de Memoria dinámica con TDA.pptx
1.1.5 Gestion de Memoria dinámica con TDA.pptx1.1.5 Gestion de Memoria dinámica con TDA.pptx
1.1.5 Gestion de Memoria dinámica con TDA.pptx
 
Luis hernandez 22310621
Luis hernandez   22310621Luis hernandez   22310621
Luis hernandez 22310621
 
Punteros
PunterosPunteros
Punteros
 
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
 
Tema 3 punteros
Tema 3 punterosTema 3 punteros
Tema 3 punteros
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
4 Administracion De Memoria
4 Administracion De Memoria4 Administracion De Memoria
4 Administracion De Memoria
 
Trabajo programacion 1 jose silva
Trabajo programacion 1 jose silvaTrabajo programacion 1 jose silva
Trabajo programacion 1 jose silva
 
Tecnología
Tecnología Tecnología
Tecnología
 
Presentacion concurso tema 01
Presentacion concurso tema 01Presentacion concurso tema 01
Presentacion concurso tema 01
 
Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacion
 
TALLER DE TECNOLOGIA GRUPO 6, SEGUNDO PERIODO 10-2..docx.pdf
TALLER DE TECNOLOGIA GRUPO 6, SEGUNDO PERIODO 10-2..docx.pdfTALLER DE TECNOLOGIA GRUPO 6, SEGUNDO PERIODO 10-2..docx.pdf
TALLER DE TECNOLOGIA GRUPO 6, SEGUNDO PERIODO 10-2..docx.pdf
 
TALLER DE TECNOLOGIA GRUPO 6, SEGUNDO PERIODO 10-2..docx.pdf
TALLER DE TECNOLOGIA GRUPO 6, SEGUNDO PERIODO 10-2..docx.pdfTALLER DE TECNOLOGIA GRUPO 6, SEGUNDO PERIODO 10-2..docx.pdf
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.