SlideShare una empresa de Scribd logo
1 de 29
Uso intensivo de memoria
Administración de memoria
dinámica
¿Qué es la memoria?
 Es un lugar donde se guarda información a usar.
 Cuando declaramos una variable o un arreglo, el
programa indica que se debe reservar un espacio
de memoria (la cantidad depende del tipo de
dato) desde antes de compilar
 Esta memoria permanecerá apartada para ser
usada durante el tiempo que el programa lo
requiera
08/10/20152 Mtl. Lourdes Cahuich
Recordamos la estructura de un
micro procesador
08/10/20153 Mtl. Lourdes Cahuich
08/10/20154 Mtl. Lourdes Cahuich
Imagen dinámica y más información
 http://cmapspublic.ihmc.us/rid=1237433039478_4
61612613_16886/Memoria%20Prinicpal.cmap
08/10/20155 Mtl. Lourdes Cahuich
08/10/20156 Mtl. Lourdes Cahuich
Para ilustrar la administración de
memoria…
 Usemos un ejemplo en donde tengamos que
usar mucha memoria.
08/10/20157 Mtl. Lourdes Cahuich
¿Recuerdas cómo se almacena un
arreglo en memoria?
08/10/20158 Mtl. Lourdes Cahuich
 Sabemos que podemos hacer un arreglo tan
grande como queramos.
 ¿Recuerdas cómo crear, llenar y mostrar un
arreglo en C++?
 Hagamos un ejemplo en Visual Studio…
08/10/20159 Mtl. Lourdes Cahuich
Si lo hiciéramos como procedimiento
definido por el usuario…
void arregloEstatico(void){
int aE[TAM]; //aquí se declara el arreglo estático cuyo tamaño fijo
//está definido por la constante TAM
cout << "nARREGLO ESTATICOn";
//ciclo para llenar el arreglo estático
for (int i = 0; i < TAM; i++){
cout << "nEscribe elemento " << i << " del arreglo: ";
cin >> aE[i];
}
cout << "n";//imprime en pantalla una línea en blanco
//ciclo para mostrar arreglo estático
for (int i = 0; i < TAM; i++)
cout << aE[i] << " ";
cout << "n";//imprime en pantalla una línea en blanco
}//fin procedimiento arregloEstatico
08/10/201510 Mtl. Lourdes Cahuich
Pero …
 ¿Qué pasa si queremos cambiar el tamaño del
arreglo durante ejecución?
 C++ permite cambiar la memoria según se va
necesitando
 A esto se llama “memoria dinámica”
 Las ventajas de la memoria dinámica es que se
aprovecha mejor la memoria de la máquina,
apartando solamente lo que se necesita
08/10/201511 Mtl. Lourdes Cahuich
Operadores “new” y “delete”
 new() permite reservar memoria de almacén libre
 delete() permite librear la memoria cuando ya no
se necesita
08/10/201512 Mtl. Lourdes Cahuich
NEW
 Permite reservar un bloque de memoria y
devuelve la dirección de comienzo de dicho
bloque
<variable_apuntador> = new <tipo_dato>;
char *p = NULL;
p= new char;
08/10/201513 Mtl. Lourdes Cahuich
NEW
 Con este operador también se pueden reservar
bloques de memoria para arreglos.
 Estos se conocen como arreglos dinámicos.
 Si el operador “new” falla, devuelve un nulo, por
lo que es obligatorio comprobar que el
compilador ha podido realizar la reserva de
memoria.
08/10/201514 Mtl. Lourdes Cahuich
Ejemplo práctico
 Ahora realicemos un arreglo dinámico en C++
usando Visual Studio…
08/10/201515 Mtl. Lourdes Cahuich
 Si lo escribiéramos como un procedimiento
definido por el usuario, quedaría…
08/10/201516 Mtl. Lourdes Cahuich
void arregloDinamico(void){
int tamDin = 0; //variable para que el usuario indique el tamaño del arreglo que quiere
cout << "nARREGLO DINAMICOn";
cout << "Escribe el tamaño del arreglo de enteros: ";//pide a usuario tamaño deseado
cin >> tamDin; //se guarda el tamaño en variable tamDin
int *pArregloDin; //apuntador para guardar dirección de inicio del arreglo dinámico
pArregloDin = new int[tamDin]; //se aparta memoria dinámica para el arreglo pArregloDin
//ciclo para llenar los elementos del arreglo dinámico
for (int i = 0; i < tamDin; i++){
cout << "nElemento " << i << " ";//pide al usuario ingrese cada uno de
//los elementos del arreglo
cin >> pArregloDin[i];
}//fin for
cout << "n";//imprime en pantalla una línea en blanco
//ciclo para mostrar arreglo dinámico
for (int i = 0; i < tamDin; i++)
cout << pArregloDin[i] << " "; //fin for
cout << "n";//imprime en pantalla una línea en blanco
delete pArregloDin; //librea la memoria dinámica reservada para el arreglo
}//fin procedimiento arreglo dinámico
08/10/201517 Mtl. Lourdes Cahuich
La estructura de un programa que
use ambos procedimientos
mostrados es:
#include <iostream>
using namespace std;
#define TAM 10
void arregloEstatico(void);
void arregloDinamico(void);
int main(){
//arreglo estático
arregloEstatico();
//arreglo dinámico
arregloDinamico();
system("pause");
return 0;
}//fin main
08/10/201518 Mtl. Lourdes Cahuich
Errores de memoria
 La corrupción de memoria ocurre en un programa
cuando los contenidos de una dirección de
memoria se modifican involuntariamente debido a
errores de programación.
08/10/201520 Mtl. Lourdes Cahuich
 Cuando los contenidos corruptos de memoria se
usan más adelante en el programa, llevan a un
error o comportamiento extraño del mismo.
08/10/201521 Mtl. Lourdes Cahuich
 La utilización de apuntadores que dan acceso
explícito a direcciones de memoria y aritmética
de apuntadores, que permiten desarrollar
aplicaciones eficientes, si no se usan de forma
adecuada pueden ocasionar errores de
corrupción de memoria.
08/10/201522 Mtl. Lourdes Cahuich
 Estos errores son los más peligrosos y los más
difíciles de detectar debido a:
 El origen de la corrupción de memoria y su
manifestación durante la ejecución del programa,
pueden estar muy separados, por lo que es difícil
relacionar la causa y el efecto.
 Los “síntomas” aparecen en condiciones inusuales,
por lo que es difícil reproducir el error de manera
consistente o constante.
08/10/201523 Mtl. Lourdes Cahuich
Categorías de errores
1. Utilización de memoria no inicializada: se
considera que los contenidos de la memoria no
inicializada son valores basura (como poner
comida recién hecha en un plato sucio), y usar
estos valores puede llevar al comportamiento
imprevisible del programa.
08/10/201524 Mtl. Lourdes Cahuich
Categorías de errores (cont.)
2. Uso de memoria sin dueño: Cuando un
apuntador es nulo o apunta a una sección de
memoria ya liberada, o una ubicación de
memoria que esta fuera de la pila de memoria
del programa. Suelen causar excepciones de
“fallos de página”, lo que lleva a una falla del
programa.
08/10/201525 Mtl. Lourdes Cahuich
Categorías de errores (cont.)
3. Usar memoria más allá de la asignada (buffer
overflow): Si se tiene un arreglo que es usado
dentro de un bucle/ciclo que tiene sus contadores
de elementos incorrectos, la memoria más allá de
los límites del arreglo puede ser manipulada.
08/10/201526 Mtl. Lourdes Cahuich
Categorías de errores (cont.)
4. Gestión defectuosa de memoria heap: Fugas de
memoria y liberar memora que no es del “heap” o
está sin asignar.
08/10/201527 Mtl. Lourdes Cahuich
Cómo evitar fugas de memoria
 Una fuga de memoria es un error de
programación que ocurre cuando un programa no
libera toda la memoria que se reservó, y debido a
esto la aplicación puede quedarse sin memoria y
causar que el sistema falle.
 Para prevenir esto se debe saber cuándo ocurren
y hacer buen uso de los operadores “new” y
“delete”.
08/10/201528 Mtl. Lourdes Cahuich
Cómo evitar fugas de memoria
1. Por cada “new” se debe utilizar un “delete” para
liberar la misma cantidad de memoria reservada
con “new”.
2. Reserva memoria sólo si la has borrado.
char * str = new char[30]; //aparta dirección mem
//delete [] str; //esta linea corrige error
str = new char [60]; //da otra dirección de mem
//se pierde la primera memoria apartada
3. Vigila las asignaciones de apuntadores.
08/10/201529 Mtl. Lourdes Cahuich

Más contenido relacionado

La actualidad más candente

Funcion computable y parcialmente computable
Funcion computable y parcialmente computableFuncion computable y parcialmente computable
Funcion computable y parcialmente computableAniitha Mtz
 
UNIDAD ARITMETICA LOGICA - INFORMATICA
UNIDAD ARITMETICA LOGICA - INFORMATICAUNIDAD ARITMETICA LOGICA - INFORMATICA
UNIDAD ARITMETICA LOGICA - INFORMATICAanthonyjosebarrazaba
 
Introducción a la arquitectura de computadores
Introducción a la arquitectura de computadoresIntroducción a la arquitectura de computadores
Introducción a la arquitectura de computadoresJohn Espinoza
 
02 laboratorio caida libre mov parabolico
02 laboratorio  caida libre  mov parabolico02 laboratorio  caida libre  mov parabolico
02 laboratorio caida libre mov parabolicoABIGAIL GAMARRA PIZARRO
 
Preguntas cpu
Preguntas cpuPreguntas cpu
Preguntas cpuborjapr
 
Linux ud3 - redireccionamiento y tuberias
Linux   ud3 - redireccionamiento y tuberiasLinux   ud3 - redireccionamiento y tuberias
Linux ud3 - redireccionamiento y tuberiasJavier Muñoz
 
Cuestionario de algoritmoss2
Cuestionario de algoritmoss2Cuestionario de algoritmoss2
Cuestionario de algoritmoss2Arazelii Puentez
 
Fisica preguntas&problemas l tarasov y a tarasova
Fisica   preguntas&problemas l tarasov y a tarasovaFisica   preguntas&problemas l tarasov y a tarasova
Fisica preguntas&problemas l tarasov y a tarasovaOsito Dormilon
 
Software para presentaciones electronicas
Software para presentaciones electronicasSoftware para presentaciones electronicas
Software para presentaciones electronicasdannymdoss_26
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosmarigelcontreras
 
Área de trabajo
Área de trabajoÁrea de trabajo
Área de trabajoMary Espino
 
Arquitectura de Oracle 11g r2
Arquitectura de Oracle 11g r2Arquitectura de Oracle 11g r2
Arquitectura de Oracle 11g r2Carmen Soler
 
108639348 solucionario-analisis-matematico-iii-eduardo-espinoza-ramos
108639348 solucionario-analisis-matematico-iii-eduardo-espinoza-ramos108639348 solucionario-analisis-matematico-iii-eduardo-espinoza-ramos
108639348 solucionario-analisis-matematico-iii-eduardo-espinoza-ramosDeiby Requena Marcelo
 
100 ejercicios-resueltos-de-sistemas-operativos
100 ejercicios-resueltos-de-sistemas-operativos100 ejercicios-resueltos-de-sistemas-operativos
100 ejercicios-resueltos-de-sistemas-operativosPatriciaDavila16
 

La actualidad más candente (20)

Funcion computable y parcialmente computable
Funcion computable y parcialmente computableFuncion computable y parcialmente computable
Funcion computable y parcialmente computable
 
UNIDAD ARITMETICA LOGICA - INFORMATICA
UNIDAD ARITMETICA LOGICA - INFORMATICAUNIDAD ARITMETICA LOGICA - INFORMATICA
UNIDAD ARITMETICA LOGICA - INFORMATICA
 
Estructuras anidadas
Estructuras anidadasEstructuras anidadas
Estructuras anidadas
 
Librerias de C++
Librerias de C++Librerias de C++
Librerias de C++
 
Introducción a la arquitectura de computadores
Introducción a la arquitectura de computadoresIntroducción a la arquitectura de computadores
Introducción a la arquitectura de computadores
 
02 laboratorio caida libre mov parabolico
02 laboratorio  caida libre  mov parabolico02 laboratorio  caida libre  mov parabolico
02 laboratorio caida libre mov parabolico
 
Informe de pseint
Informe de pseintInforme de pseint
Informe de pseint
 
Preguntas cpu
Preguntas cpuPreguntas cpu
Preguntas cpu
 
Linux ud3 - redireccionamiento y tuberias
Linux   ud3 - redireccionamiento y tuberiasLinux   ud3 - redireccionamiento y tuberias
Linux ud3 - redireccionamiento y tuberias
 
Cuestionario de algoritmoss2
Cuestionario de algoritmoss2Cuestionario de algoritmoss2
Cuestionario de algoritmoss2
 
Fisica preguntas&problemas l tarasov y a tarasova
Fisica   preguntas&problemas l tarasov y a tarasovaFisica   preguntas&problemas l tarasov y a tarasova
Fisica preguntas&problemas l tarasov y a tarasova
 
Software para presentaciones electronicas
Software para presentaciones electronicasSoftware para presentaciones electronicas
Software para presentaciones electronicas
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
 
Área de trabajo
Área de trabajoÁrea de trabajo
Área de trabajo
 
Arquitectura de Oracle 11g r2
Arquitectura de Oracle 11g r2Arquitectura de Oracle 11g r2
Arquitectura de Oracle 11g r2
 
108639348 solucionario-analisis-matematico-iii-eduardo-espinoza-ramos
108639348 solucionario-analisis-matematico-iii-eduardo-espinoza-ramos108639348 solucionario-analisis-matematico-iii-eduardo-espinoza-ramos
108639348 solucionario-analisis-matematico-iii-eduardo-espinoza-ramos
 
100 ejercicios-resueltos-de-sistemas-operativos
100 ejercicios-resueltos-de-sistemas-operativos100 ejercicios-resueltos-de-sistemas-operativos
100 ejercicios-resueltos-de-sistemas-operativos
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Backups en Oracle
Backups en OracleBackups en Oracle
Backups en Oracle
 
Implementación de hilos
Implementación de hilos Implementación de hilos
Implementación de hilos
 

Destacado

Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaCarlitos Correa Jr.
 
Estructura de un Programa en C++
Estructura de un Programa en C++Estructura de un Programa en C++
Estructura de un Programa en C++itzel-patricia05
 
Manejo de bits -operadores de bits C++
Manejo de bits -operadores de bits C++Manejo de bits -operadores de bits C++
Manejo de bits -operadores de bits C++UVM
 
Administración de memoria continuación -matrices estáticas y dinámicas
Administración de memoria continuación -matrices estáticas y dinámicasAdministración de memoria continuación -matrices estáticas y dinámicas
Administración de memoria continuación -matrices estáticas y dinámicasUVM
 
Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_Diosmary Marrón Dellán
 
Arrays bidimensionales
Arrays bidimensionalesArrays bidimensionales
Arrays bidimensionalesasvargas
 
Apuntadores
ApuntadoresApuntadores
Apuntadoresluisabn
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++die_dex
 
Estructura de datos c++
Estructura de datos c++ Estructura de datos c++
Estructura de datos c++ eliezerbs
 

Destacado (20)

Arreglos c++
Arreglos c++Arreglos c++
Arreglos c++
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos Correa
 
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOSunidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
 
Generalidades
GeneralidadesGeneralidades
Generalidades
 
Arreglos
ArreglosArreglos
Arreglos
 
Estructura de un Programa en C++
Estructura de un Programa en C++Estructura de un Programa en C++
Estructura de un Programa en C++
 
Manejo de bits -operadores de bits C++
Manejo de bits -operadores de bits C++Manejo de bits -operadores de bits C++
Manejo de bits -operadores de bits C++
 
Trabajo de estructura de datos
Trabajo de estructura de datosTrabajo de estructura de datos
Trabajo de estructura de datos
 
Exp compi(2)
Exp compi(2)Exp compi(2)
Exp compi(2)
 
Administración de memoria continuación -matrices estáticas y dinámicas
Administración de memoria continuación -matrices estáticas y dinámicasAdministración de memoria continuación -matrices estáticas y dinámicas
Administración de memoria continuación -matrices estáticas y dinámicas
 
Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_
 
Memoria memoria dinamica
 Memoria memoria dinamica Memoria memoria dinamica
Memoria memoria dinamica
 
Capitulo II
Capitulo IICapitulo II
Capitulo II
 
Arrays bidimensionales
Arrays bidimensionalesArrays bidimensionales
Arrays bidimensionales
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++
 
Estructura de datos c++
Estructura de datos c++ Estructura de datos c++
Estructura de datos c++
 
Arreglos multidimensionales y de apuntadores
Arreglos multidimensionales y de apuntadoresArreglos multidimensionales y de apuntadores
Arreglos multidimensionales y de apuntadores
 
Ejercicios punteros cadenas-vectores
Ejercicios punteros cadenas-vectoresEjercicios punteros cadenas-vectores
Ejercicios punteros cadenas-vectores
 

Similar a Memoria dinámica arreglos C

Ortega sebastian 01gestorincidenciesocs
Ortega sebastian 01gestorincidenciesocsOrtega sebastian 01gestorincidenciesocs
Ortega sebastian 01gestorincidenciesocsSebastinOrtega12
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2giovatovar
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2giovatovar
 
Expo Sistemas Operativos
Expo Sistemas OperativosExpo Sistemas Operativos
Expo Sistemas Operativosguestaf356ab6
 
Administracion y manejo de memoria
Administracion y manejo de memoriaAdministracion y manejo de memoria
Administracion y manejo de memoriagiovatovar
 
Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoriachonfira
 
Inf 324 01 2009 02 Bloqueos
Inf 324 01 2009 02 BloqueosInf 324 01 2009 02 Bloqueos
Inf 324 01 2009 02 Bloqueosarielnovas
 
Tatiana sanchez 1
Tatiana sanchez 1Tatiana sanchez 1
Tatiana sanchez 1tatyseli
 
Administracion de la memoria principal
Administracion de  la memoria principalAdministracion de  la memoria principal
Administracion de la memoria principaljbersosa
 
Administración de la memoria
Administración de la memoriaAdministración de la memoria
Administración de la memoriaBeatriz Pérez
 
Mantenimiento de la base de datos Oracle 11g
Mantenimiento de la base de datos Oracle 11gMantenimiento de la base de datos Oracle 11g
Mantenimiento de la base de datos Oracle 11gCarmen Soler
 
Administración de memoria virtual.
Administración de memoria virtual.Administración de memoria virtual.
Administración de memoria virtual.Juan Anaya
 

Similar a Memoria dinámica arreglos C (20)

Ortega sebastian 01gestorincidenciesocs
Ortega sebastian 01gestorincidenciesocsOrtega sebastian 01gestorincidenciesocs
Ortega sebastian 01gestorincidenciesocs
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
 
Expo Sistemas Operativos
Expo Sistemas OperativosExpo Sistemas Operativos
Expo Sistemas Operativos
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoria
 
Administracion y manejo de memoria
Administracion y manejo de memoriaAdministracion y manejo de memoria
Administracion y manejo de memoria
 
Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoria
 
Inf 324 01 2009 02 Bloqueos
Inf 324 01 2009 02 BloqueosInf 324 01 2009 02 Bloqueos
Inf 324 01 2009 02 Bloqueos
 
Unidad 3 s.o.
Unidad 3 s.o.Unidad 3 s.o.
Unidad 3 s.o.
 
Unidad 3 s.o.
Unidad 3 s.o.Unidad 3 s.o.
Unidad 3 s.o.
 
Unidad 3 s.o.
Unidad 3 s.o.Unidad 3 s.o.
Unidad 3 s.o.
 
Tatiana sanchez 1
Tatiana sanchez 1Tatiana sanchez 1
Tatiana sanchez 1
 
Insti fer
Insti ferInsti fer
Insti fer
 
Administracion de la memoria principal
Administracion de  la memoria principalAdministracion de  la memoria principal
Administracion de la memoria principal
 
Sistema operativos
Sistema operativos Sistema operativos
Sistema operativos
 
Administración de la memoria
Administración de la memoriaAdministración de la memoria
Administración de la memoria
 
Solemne 3 (con pauta)
Solemne 3 (con pauta)Solemne 3 (con pauta)
Solemne 3 (con pauta)
 
Mantenimiento de la base de datos Oracle 11g
Mantenimiento de la base de datos Oracle 11gMantenimiento de la base de datos Oracle 11g
Mantenimiento de la base de datos Oracle 11g
 
Unidades 3,4,y 5
Unidades 3,4,y 5Unidades 3,4,y 5
Unidades 3,4,y 5
 
Administración de memoria virtual.
Administración de memoria virtual.Administración de memoria virtual.
Administración de memoria virtual.
 

Más de UVM

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programaciónUVM
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaUVM
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempoUVM
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglosUVM
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadoresUVM
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlUVM
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadoresUVM
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicosUVM
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datosUVM
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funcionesUVM
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funcionesUVM
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bitsUVM
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreUVM
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3UVM
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuarioUVM
 
Función main()
Función main()Función main()
Función main()UVM
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++UVM
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoUVM
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++UVM
 
Objetos y arreglos en C#
Objetos y arreglos en C#Objetos y arreglos en C#
Objetos y arreglos en C#UVM
 

Más de UVM (20)

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programación
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación Avanzada
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempo
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglos
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadores
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stl
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadores
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicos
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datos
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funciones
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funciones
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bits
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembre
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuario
 
Función main()
Función main()Función main()
Función main()
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agosto
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++
 
Objetos y arreglos en C#
Objetos y arreglos en C#Objetos y arreglos en C#
Objetos y arreglos en C#
 

Último

Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxdkmeza
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 

Último (20)

Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 

Memoria dinámica arreglos C

  • 1. Uso intensivo de memoria Administración de memoria dinámica
  • 2. ¿Qué es la memoria?  Es un lugar donde se guarda información a usar.  Cuando declaramos una variable o un arreglo, el programa indica que se debe reservar un espacio de memoria (la cantidad depende del tipo de dato) desde antes de compilar  Esta memoria permanecerá apartada para ser usada durante el tiempo que el programa lo requiera 08/10/20152 Mtl. Lourdes Cahuich
  • 3. Recordamos la estructura de un micro procesador 08/10/20153 Mtl. Lourdes Cahuich
  • 5. Imagen dinámica y más información  http://cmapspublic.ihmc.us/rid=1237433039478_4 61612613_16886/Memoria%20Prinicpal.cmap 08/10/20155 Mtl. Lourdes Cahuich
  • 7. Para ilustrar la administración de memoria…  Usemos un ejemplo en donde tengamos que usar mucha memoria. 08/10/20157 Mtl. Lourdes Cahuich
  • 8. ¿Recuerdas cómo se almacena un arreglo en memoria? 08/10/20158 Mtl. Lourdes Cahuich
  • 9.  Sabemos que podemos hacer un arreglo tan grande como queramos.  ¿Recuerdas cómo crear, llenar y mostrar un arreglo en C++?  Hagamos un ejemplo en Visual Studio… 08/10/20159 Mtl. Lourdes Cahuich
  • 10. Si lo hiciéramos como procedimiento definido por el usuario… void arregloEstatico(void){ int aE[TAM]; //aquí se declara el arreglo estático cuyo tamaño fijo //está definido por la constante TAM cout << "nARREGLO ESTATICOn"; //ciclo para llenar el arreglo estático for (int i = 0; i < TAM; i++){ cout << "nEscribe elemento " << i << " del arreglo: "; cin >> aE[i]; } cout << "n";//imprime en pantalla una línea en blanco //ciclo para mostrar arreglo estático for (int i = 0; i < TAM; i++) cout << aE[i] << " "; cout << "n";//imprime en pantalla una línea en blanco }//fin procedimiento arregloEstatico 08/10/201510 Mtl. Lourdes Cahuich
  • 11. Pero …  ¿Qué pasa si queremos cambiar el tamaño del arreglo durante ejecución?  C++ permite cambiar la memoria según se va necesitando  A esto se llama “memoria dinámica”  Las ventajas de la memoria dinámica es que se aprovecha mejor la memoria de la máquina, apartando solamente lo que se necesita 08/10/201511 Mtl. Lourdes Cahuich
  • 12. Operadores “new” y “delete”  new() permite reservar memoria de almacén libre  delete() permite librear la memoria cuando ya no se necesita 08/10/201512 Mtl. Lourdes Cahuich
  • 13. NEW  Permite reservar un bloque de memoria y devuelve la dirección de comienzo de dicho bloque <variable_apuntador> = new <tipo_dato>; char *p = NULL; p= new char; 08/10/201513 Mtl. Lourdes Cahuich
  • 14. NEW  Con este operador también se pueden reservar bloques de memoria para arreglos.  Estos se conocen como arreglos dinámicos.  Si el operador “new” falla, devuelve un nulo, por lo que es obligatorio comprobar que el compilador ha podido realizar la reserva de memoria. 08/10/201514 Mtl. Lourdes Cahuich
  • 15. Ejemplo práctico  Ahora realicemos un arreglo dinámico en C++ usando Visual Studio… 08/10/201515 Mtl. Lourdes Cahuich
  • 16.  Si lo escribiéramos como un procedimiento definido por el usuario, quedaría… 08/10/201516 Mtl. Lourdes Cahuich
  • 17. void arregloDinamico(void){ int tamDin = 0; //variable para que el usuario indique el tamaño del arreglo que quiere cout << "nARREGLO DINAMICOn"; cout << "Escribe el tamaño del arreglo de enteros: ";//pide a usuario tamaño deseado cin >> tamDin; //se guarda el tamaño en variable tamDin int *pArregloDin; //apuntador para guardar dirección de inicio del arreglo dinámico pArregloDin = new int[tamDin]; //se aparta memoria dinámica para el arreglo pArregloDin //ciclo para llenar los elementos del arreglo dinámico for (int i = 0; i < tamDin; i++){ cout << "nElemento " << i << " ";//pide al usuario ingrese cada uno de //los elementos del arreglo cin >> pArregloDin[i]; }//fin for cout << "n";//imprime en pantalla una línea en blanco //ciclo para mostrar arreglo dinámico for (int i = 0; i < tamDin; i++) cout << pArregloDin[i] << " "; //fin for cout << "n";//imprime en pantalla una línea en blanco delete pArregloDin; //librea la memoria dinámica reservada para el arreglo }//fin procedimiento arreglo dinámico 08/10/201517 Mtl. Lourdes Cahuich
  • 18. La estructura de un programa que use ambos procedimientos mostrados es: #include <iostream> using namespace std; #define TAM 10 void arregloEstatico(void); void arregloDinamico(void); int main(){ //arreglo estático arregloEstatico(); //arreglo dinámico arregloDinamico(); system("pause"); return 0; }//fin main 08/10/201518 Mtl. Lourdes Cahuich
  • 20.  La corrupción de memoria ocurre en un programa cuando los contenidos de una dirección de memoria se modifican involuntariamente debido a errores de programación. 08/10/201520 Mtl. Lourdes Cahuich
  • 21.  Cuando los contenidos corruptos de memoria se usan más adelante en el programa, llevan a un error o comportamiento extraño del mismo. 08/10/201521 Mtl. Lourdes Cahuich
  • 22.  La utilización de apuntadores que dan acceso explícito a direcciones de memoria y aritmética de apuntadores, que permiten desarrollar aplicaciones eficientes, si no se usan de forma adecuada pueden ocasionar errores de corrupción de memoria. 08/10/201522 Mtl. Lourdes Cahuich
  • 23.  Estos errores son los más peligrosos y los más difíciles de detectar debido a:  El origen de la corrupción de memoria y su manifestación durante la ejecución del programa, pueden estar muy separados, por lo que es difícil relacionar la causa y el efecto.  Los “síntomas” aparecen en condiciones inusuales, por lo que es difícil reproducir el error de manera consistente o constante. 08/10/201523 Mtl. Lourdes Cahuich
  • 24. Categorías de errores 1. Utilización de memoria no inicializada: se considera que los contenidos de la memoria no inicializada son valores basura (como poner comida recién hecha en un plato sucio), y usar estos valores puede llevar al comportamiento imprevisible del programa. 08/10/201524 Mtl. Lourdes Cahuich
  • 25. Categorías de errores (cont.) 2. Uso de memoria sin dueño: Cuando un apuntador es nulo o apunta a una sección de memoria ya liberada, o una ubicación de memoria que esta fuera de la pila de memoria del programa. Suelen causar excepciones de “fallos de página”, lo que lleva a una falla del programa. 08/10/201525 Mtl. Lourdes Cahuich
  • 26. Categorías de errores (cont.) 3. Usar memoria más allá de la asignada (buffer overflow): Si se tiene un arreglo que es usado dentro de un bucle/ciclo que tiene sus contadores de elementos incorrectos, la memoria más allá de los límites del arreglo puede ser manipulada. 08/10/201526 Mtl. Lourdes Cahuich
  • 27. Categorías de errores (cont.) 4. Gestión defectuosa de memoria heap: Fugas de memoria y liberar memora que no es del “heap” o está sin asignar. 08/10/201527 Mtl. Lourdes Cahuich
  • 28. Cómo evitar fugas de memoria  Una fuga de memoria es un error de programación que ocurre cuando un programa no libera toda la memoria que se reservó, y debido a esto la aplicación puede quedarse sin memoria y causar que el sistema falle.  Para prevenir esto se debe saber cuándo ocurren y hacer buen uso de los operadores “new” y “delete”. 08/10/201528 Mtl. Lourdes Cahuich
  • 29. Cómo evitar fugas de memoria 1. Por cada “new” se debe utilizar un “delete” para liberar la misma cantidad de memoria reservada con “new”. 2. Reserva memoria sólo si la has borrado. char * str = new char[30]; //aparta dirección mem //delete [] str; //esta linea corrige error str = new char [60]; //da otra dirección de mem //se pierde la primera memoria apartada 3. Vigila las asignaciones de apuntadores. 08/10/201529 Mtl. Lourdes Cahuich

Notas del editor

  1. http://cmapspublic.ihmc.us/rid=1237433039478_461612613_16886/Memoria%20Prinicpal.cmap
  2. http://www.seduca2.uaemex.mx/material/LIA/AC/Sec12_R.php
  3. http://metodos1utec.blogspot.mx/2012/10/representacion-de-arreglos.html