SlideShare una empresa de Scribd logo
1 de 10
MEMORIA DINAMICA EN C
Los programas necesitan memoria
para funcionar y almacenar los datos
TIPOS DE MEMORIA
 ESTATICA
 Fija, invariable al ejecutar el programa
 DINAMICA
 Cambia de acuerdo al tamaño de
variables
 PROBLEMAS DE MEMORIA
ESTATICA
int arreglo[100];int arreglo[100];
asignadoutilizado desuso
PILA Y HEAP
 PILA Y MONTICULO
memoria
de aplicación
heap
Estructuras
de control
stack
heap
stack
heap
stack
heap
stack
LIFO
Libremente
ASIGNACION ESTATICA DE MEMORIA
int funcion(int a)int funcion(int a)
{{
float x[100]; //reserva 100float x[100]; //reserva 100
numeros para el arreglo xnumeros para el arreglo x
}}
FUNCIONES PARA ASIGNACION
 stdlib.h
 MALLOC
 CALLOC
 REALLOC
 FREE
MALLOC
 Asignar memoria en bytesAsignar memoria en bytes
 Definición formalDefinición formal
void *malloc(unsigned tamaño)void *malloc(unsigned tamaño)
 Conversión de tipoConversión de tipo
float *pfloat *p
p=(float *)malloc(400);p=(float *)malloc(400);
 EjemploEjemplo
if ((p=(float *) malloc(100*sizeof(float)))==NULL)if ((p=(float *) malloc(100*sizeof(float)))==NULL)
{{
printf(“no hay memoria suficiente.n ”);printf(“no hay memoria suficiente.n ”);
exit(1);exit(1);
}}
 Elimina riesgos de bloque del computadorElimina riesgos de bloque del computador
CALLOC
 Sutilmente parecida a mallocSutilmente parecida a malloc
 Asignar memoria (bytes) e inicializaAsignar memoria (bytes) e inicializa
 Definición formalDefinición formal
void *calloc(unsigned num_elementos, unsignedvoid *calloc(unsigned num_elementos, unsigned
tamaño)tamaño)
 EjemploEjemplo
if ((p=(float *) calloc(100,sizeof(float)))==null)if ((p=(float *) calloc(100,sizeof(float)))==null)
{{
printf(“no hay memoria suficiente.n ”);printf(“no hay memoria suficiente.n ”);
exit(1);exit(1);
}}
 Apariencia más estructuradaApariencia más estructurada
 Si necesitamos espacio de memoria limpio al crearSi necesitamos espacio de memoria limpio al crear
 Elimina riesgos de bloque del computadorElimina riesgos de bloque del computador
REALLOC
 Aumenta el espacio de memoria asignado inicialmenteAumenta el espacio de memoria asignado inicialmente
a una variable después de haber utilizado malloc oa una variable después de haber utilizado malloc o
calloccalloc
 Definición formalDefinición formal
void *realloc(void *puntero_anterior, unsignedvoid *realloc(void *puntero_anterior, unsigned
tamaño)tamaño)
 EjemploEjemplo
p=(float *) malloc(100*sizeof(float));p=(float *) malloc(100*sizeof(float));
if ((p=(float *)if ((p=(float *)
realloc(p,200*sizeof(float)))==null)realloc(p,200*sizeof(float)))==null)
{{
printf(“no hay memoria suficiente.n ”);printf(“no hay memoria suficiente.n ”);
exit(1);exit(1);
}}
 Cuidado:Cuidado: si realloc retorna null hemos perdidosi realloc retorna null hemos perdido
espacio de malloc o callocespacio de malloc o calloc
FREE
 Libera memoria asignada con calloc, malloc, reallocLibera memoria asignada con calloc, malloc, realloc
 No devuelve valor y recibe punteroNo devuelve valor y recibe puntero
 Definición formalDefinición formal
void free(void *puntero)void free(void *puntero)
 EjemploEjemplo
p=(float *) malloc(100*sizeof(float));p=(float *) malloc(100*sizeof(float));
free(p);free(p);
 Se recomienda utilizarla al final para liberarSe recomienda utilizarla al final para liberar
memoria asignadamemoria asignada
 Al cerrar el programa hay liberación automática,Al cerrar el programa hay liberación automática,
peropero no segura 100%,no segura 100%, por lo tanto se recomiendapor lo tanto se recomienda
Ejemplo 1
#include <stdlib.h>
int* ptr; /* puntero a enteros */
int* ptr2; /* otro puntero */
...
/* reserva espacio para 300 enteros */
ptr = (int*)malloc ( 300*sizeof(int) );
...
ptr[33] = 15; /* trabaja con el área de memoria */
rellena_de_ceros (10,ptr); /* otro ejemplo */
ptr2 = ptr + 15; /* asignación a otro puntero */
/* finalmente, libera la zona de memoria */
free(ptr);

Más contenido relacionado

La actualidad más candente

Computer Organisation & Architecture (chapter 1)
Computer Organisation & Architecture (chapter 1) Computer Organisation & Architecture (chapter 1)
Computer Organisation & Architecture (chapter 1) Subhasis Dash
 
OS - Process Concepts
OS - Process ConceptsOS - Process Concepts
OS - Process ConceptsMukesh Chinta
 
Redes neuronales artificiales supervisadas y no supervisadas
Redes neuronales artificiales supervisadas y no supervisadasRedes neuronales artificiales supervisadas y no supervisadas
Redes neuronales artificiales supervisadas y no supervisadasUNIVERSIDAD SANTA MARIA
 
Memory Organization | Computer Fundamental and Organization
Memory Organization | Computer Fundamental and OrganizationMemory Organization | Computer Fundamental and Organization
Memory Organization | Computer Fundamental and OrganizationSmit Luvani
 
Objetivo 01 Archivos de Texto
Objetivo 01 Archivos de TextoObjetivo 01 Archivos de Texto
Objetivo 01 Archivos de Textonakaryortegaleon
 
Advanced pipelining
Advanced pipeliningAdvanced pipelining
Advanced pipelininga_spac
 
Arquitectura interna del procesador
Arquitectura interna del procesadorArquitectura interna del procesador
Arquitectura interna del procesadoralexanderchule
 
Computer Architecture and Organization.pptx
Computer Architecture and Organization.pptxComputer Architecture and Organization.pptx
Computer Architecture and Organization.pptxLearnersCoach
 
Controladores de dominio_de_redes_windows
Controladores de dominio_de_redes_windowsControladores de dominio_de_redes_windows
Controladores de dominio_de_redes_windowsPedro Hernandez
 
Exclusión mutua
Exclusión mutuaExclusión mutua
Exclusión mutuatatyseli
 
Chapter 2-8085 Microprocessor Architecture and Microcomputer Systems
Chapter 2-8085 Microprocessor Architecture and Microcomputer SystemsChapter 2-8085 Microprocessor Architecture and Microcomputer Systems
Chapter 2-8085 Microprocessor Architecture and Microcomputer Systemscmkandemir
 
Mrom
MromMrom
MromUTC
 
Memory Organization
Memory OrganizationMemory Organization
Memory OrganizationAcad
 

La actualidad más candente (20)

Computer Organisation & Architecture (chapter 1)
Computer Organisation & Architecture (chapter 1) Computer Organisation & Architecture (chapter 1)
Computer Organisation & Architecture (chapter 1)
 
OS - Process Concepts
OS - Process ConceptsOS - Process Concepts
OS - Process Concepts
 
Redes neuronales artificiales supervisadas y no supervisadas
Redes neuronales artificiales supervisadas y no supervisadasRedes neuronales artificiales supervisadas y no supervisadas
Redes neuronales artificiales supervisadas y no supervisadas
 
Memory Organization | Computer Fundamental and Organization
Memory Organization | Computer Fundamental and OrganizationMemory Organization | Computer Fundamental and Organization
Memory Organization | Computer Fundamental and Organization
 
RAM and ROM Chips
RAM and ROM ChipsRAM and ROM Chips
RAM and ROM Chips
 
Fetch-execute Cycle
Fetch-execute CycleFetch-execute Cycle
Fetch-execute Cycle
 
Objetivo 01 Archivos de Texto
Objetivo 01 Archivos de TextoObjetivo 01 Archivos de Texto
Objetivo 01 Archivos de Texto
 
Advanced pipelining
Advanced pipeliningAdvanced pipelining
Advanced pipelining
 
16 control unit
16 control unit16 control unit
16 control unit
 
Risc Cisc
Risc  CiscRisc  Cisc
Risc Cisc
 
Arquitectura interna del procesador
Arquitectura interna del procesadorArquitectura interna del procesador
Arquitectura interna del procesador
 
Computer Architecture and Organization.pptx
Computer Architecture and Organization.pptxComputer Architecture and Organization.pptx
Computer Architecture and Organization.pptx
 
Input output interface
Input output interfaceInput output interface
Input output interface
 
Controladores de dominio_de_redes_windows
Controladores de dominio_de_redes_windowsControladores de dominio_de_redes_windows
Controladores de dominio_de_redes_windows
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
Programación PIC16F84A
Programación PIC16F84AProgramación PIC16F84A
Programación PIC16F84A
 
Exclusión mutua
Exclusión mutuaExclusión mutua
Exclusión mutua
 
Chapter 2-8085 Microprocessor Architecture and Microcomputer Systems
Chapter 2-8085 Microprocessor Architecture and Microcomputer SystemsChapter 2-8085 Microprocessor Architecture and Microcomputer Systems
Chapter 2-8085 Microprocessor Architecture and Microcomputer Systems
 
Mrom
MromMrom
Mrom
 
Memory Organization
Memory OrganizationMemory Organization
Memory Organization
 

Destacado (20)

Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
1.5 memoria dinamica
1.5 memoria dinamica1.5 memoria dinamica
1.5 memoria dinamica
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Ape unidad4
Ape unidad4Ape unidad4
Ape unidad4
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceados
 
Punteros
PunterosPunteros
Punteros
 
HEAPS
HEAPSHEAPS
HEAPS
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceados
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceados
 
Programacion de Cadenas
Programacion de CadenasProgramacion de Cadenas
Programacion de Cadenas
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceados
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Tda y heaps
Tda y heapsTda y heaps
Tda y heaps
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y Colas
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Tecnicas de rotacion en arboles balanceados
Tecnicas de rotacion en arboles balanceadosTecnicas de rotacion en arboles balanceados
Tecnicas de rotacion en arboles balanceados
 
Unidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUnidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datos
 

Similar a 4 memoria dinamica (20)

Introducción a Swift
Introducción a SwiftIntroducción a Swift
Introducción a Swift
 
Tema 4 - Tipos datos avanzados (III)
Tema 4 - Tipos datos avanzados (III)Tema 4 - Tipos datos avanzados (III)
Tema 4 - Tipos datos avanzados (III)
 
Clase2 c
Clase2 cClase2 c
Clase2 c
 
Curso c++
Curso c++Curso c++
Curso c++
 
Modelo Persistente
Modelo PersistenteModelo Persistente
Modelo Persistente
 
Los lenguajes de la web
Los lenguajes de la webLos lenguajes de la web
Los lenguajes de la web
 
Introduccion clips
Introduccion clipsIntroduccion clips
Introduccion clips
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
 
Curso c ii
Curso c iiCurso c ii
Curso c ii
 
Curso c ii
Curso c iiCurso c ii
Curso c ii
 
Curso C Ii
Curso C IiCurso C Ii
Curso C Ii
 
11 Funciones
11 Funciones11 Funciones
11 Funciones
 
Operadores
OperadoresOperadores
Operadores
 
Operadores y expresiones
Operadores y expresionesOperadores y expresiones
Operadores y expresiones
 
Operadores
OperadoresOperadores
Operadores
 
C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Cplus
CplusCplus
Cplus
 
Diccionario visual basic
Diccionario visual basicDiccionario visual basic
Diccionario visual basic
 
Ejemplos c
Ejemplos cEjemplos c
Ejemplos c
 

Más de Pedro Contreras Flores

Servicio de información para bibliotecas
Servicio de información para bibliotecasServicio de información para bibliotecas
Servicio de información para bibliotecasPedro Contreras Flores
 
Business intelligence (bi) y big data0
Business intelligence (bi) y big data0Business intelligence (bi) y big data0
Business intelligence (bi) y big data0Pedro Contreras Flores
 
Sistemas y servicios de informacion intro
Sistemas y servicios de informacion introSistemas y servicios de informacion intro
Sistemas y servicios de informacion introPedro Contreras Flores
 
Hormigas arfificiales - Mauro San Martín
Hormigas arfificiales - Mauro San MartínHormigas arfificiales - Mauro San Martín
Hormigas arfificiales - Mauro San MartínPedro Contreras Flores
 

Más de Pedro Contreras Flores (20)

El dilema de las redes sociales
El dilema de las redes sociales El dilema de las redes sociales
El dilema de las redes sociales
 
Tipos de sistemas de información
Tipos de sistemas de informaciónTipos de sistemas de información
Tipos de sistemas de información
 
Text Analytics - JCC2014 Kimelfeld
Text Analytics - JCC2014 KimelfeldText Analytics - JCC2014 Kimelfeld
Text Analytics - JCC2014 Kimelfeld
 
Servicio de información para bibliotecas
Servicio de información para bibliotecasServicio de información para bibliotecas
Servicio de información para bibliotecas
 
Gestión del conocimiento
Gestión del conocimientoGestión del conocimiento
Gestión del conocimiento
 
Business intelligence (bi) y big data0
Business intelligence (bi) y big data0Business intelligence (bi) y big data0
Business intelligence (bi) y big data0
 
Bibliotecas moviles y calidad
Bibliotecas moviles y calidadBibliotecas moviles y calidad
Bibliotecas moviles y calidad
 
Sistemas y servicios de informacion intro
Sistemas y servicios de informacion introSistemas y servicios de informacion intro
Sistemas y servicios de informacion intro
 
Plataforma de Digitalización
Plataforma de DigitalizaciónPlataforma de Digitalización
Plataforma de Digitalización
 
Red de transporte urbano
Red de transporte urbanoRed de transporte urbano
Red de transporte urbano
 
Packing
PackingPacking
Packing
 
Hormigas arfificiales - Mauro San Martín
Hormigas arfificiales - Mauro San MartínHormigas arfificiales - Mauro San Martín
Hormigas arfificiales - Mauro San Martín
 
Tecnologías de la información
Tecnologías de la informaciónTecnologías de la información
Tecnologías de la información
 
Modelamiento y simulación
Modelamiento y simulaciónModelamiento y simulación
Modelamiento y simulación
 
Java 3D
Java 3DJava 3D
Java 3D
 
Complementos de programación
Complementos de programaciónComplementos de programación
Complementos de programación
 
3 recursividad
3 recursividad3 recursividad
3 recursividad
 
2 punteros y lenguaje c
2 punteros y lenguaje c2 punteros y lenguaje c
2 punteros y lenguaje c
 
Programación grafica en lenguaje c
Programación grafica en lenguaje cProgramación grafica en lenguaje c
Programación grafica en lenguaje c
 
2 archivos
2 archivos2 archivos
2 archivos
 

Último

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 

Último (20)

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 

4 memoria dinamica

  • 1. MEMORIA DINAMICA EN C Los programas necesitan memoria para funcionar y almacenar los datos
  • 2. TIPOS DE MEMORIA  ESTATICA  Fija, invariable al ejecutar el programa  DINAMICA  Cambia de acuerdo al tamaño de variables  PROBLEMAS DE MEMORIA ESTATICA int arreglo[100];int arreglo[100]; asignadoutilizado desuso
  • 3. PILA Y HEAP  PILA Y MONTICULO memoria de aplicación heap Estructuras de control stack heap stack heap stack heap stack LIFO Libremente
  • 4. ASIGNACION ESTATICA DE MEMORIA int funcion(int a)int funcion(int a) {{ float x[100]; //reserva 100float x[100]; //reserva 100 numeros para el arreglo xnumeros para el arreglo x }}
  • 5. FUNCIONES PARA ASIGNACION  stdlib.h  MALLOC  CALLOC  REALLOC  FREE
  • 6. MALLOC  Asignar memoria en bytesAsignar memoria en bytes  Definición formalDefinición formal void *malloc(unsigned tamaño)void *malloc(unsigned tamaño)  Conversión de tipoConversión de tipo float *pfloat *p p=(float *)malloc(400);p=(float *)malloc(400);  EjemploEjemplo if ((p=(float *) malloc(100*sizeof(float)))==NULL)if ((p=(float *) malloc(100*sizeof(float)))==NULL) {{ printf(“no hay memoria suficiente.n ”);printf(“no hay memoria suficiente.n ”); exit(1);exit(1); }}  Elimina riesgos de bloque del computadorElimina riesgos de bloque del computador
  • 7. CALLOC  Sutilmente parecida a mallocSutilmente parecida a malloc  Asignar memoria (bytes) e inicializaAsignar memoria (bytes) e inicializa  Definición formalDefinición formal void *calloc(unsigned num_elementos, unsignedvoid *calloc(unsigned num_elementos, unsigned tamaño)tamaño)  EjemploEjemplo if ((p=(float *) calloc(100,sizeof(float)))==null)if ((p=(float *) calloc(100,sizeof(float)))==null) {{ printf(“no hay memoria suficiente.n ”);printf(“no hay memoria suficiente.n ”); exit(1);exit(1); }}  Apariencia más estructuradaApariencia más estructurada  Si necesitamos espacio de memoria limpio al crearSi necesitamos espacio de memoria limpio al crear  Elimina riesgos de bloque del computadorElimina riesgos de bloque del computador
  • 8. REALLOC  Aumenta el espacio de memoria asignado inicialmenteAumenta el espacio de memoria asignado inicialmente a una variable después de haber utilizado malloc oa una variable después de haber utilizado malloc o calloccalloc  Definición formalDefinición formal void *realloc(void *puntero_anterior, unsignedvoid *realloc(void *puntero_anterior, unsigned tamaño)tamaño)  EjemploEjemplo p=(float *) malloc(100*sizeof(float));p=(float *) malloc(100*sizeof(float)); if ((p=(float *)if ((p=(float *) realloc(p,200*sizeof(float)))==null)realloc(p,200*sizeof(float)))==null) {{ printf(“no hay memoria suficiente.n ”);printf(“no hay memoria suficiente.n ”); exit(1);exit(1); }}  Cuidado:Cuidado: si realloc retorna null hemos perdidosi realloc retorna null hemos perdido espacio de malloc o callocespacio de malloc o calloc
  • 9. FREE  Libera memoria asignada con calloc, malloc, reallocLibera memoria asignada con calloc, malloc, realloc  No devuelve valor y recibe punteroNo devuelve valor y recibe puntero  Definición formalDefinición formal void free(void *puntero)void free(void *puntero)  EjemploEjemplo p=(float *) malloc(100*sizeof(float));p=(float *) malloc(100*sizeof(float)); free(p);free(p);  Se recomienda utilizarla al final para liberarSe recomienda utilizarla al final para liberar memoria asignadamemoria asignada  Al cerrar el programa hay liberación automática,Al cerrar el programa hay liberación automática, peropero no segura 100%,no segura 100%, por lo tanto se recomiendapor lo tanto se recomienda
  • 10. Ejemplo 1 #include <stdlib.h> int* ptr; /* puntero a enteros */ int* ptr2; /* otro puntero */ ... /* reserva espacio para 300 enteros */ ptr = (int*)malloc ( 300*sizeof(int) ); ... ptr[33] = 15; /* trabaja con el área de memoria */ rellena_de_ceros (10,ptr); /* otro ejemplo */ ptr2 = ptr + 15; /* asignación a otro puntero */ /* finalmente, libera la zona de memoria */ free(ptr);