SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Memoria Dinámica
Herman Schinca
Clase 13
10 de Mayo de 2011
Reflexiones Preliminares

Hasta ahora trabajamos con variables cuyo
tamaño en memoria conocemos:

Char → 1 byte

Int → 4 bytes

Float → 4 bytes

Double → 8 bytes

Int arr[20] → ? bytes
Reflexiones Preliminares
¿En todo programa conocemos TODA la
información que vamos a necesitar
de antemano?
¿Hay ejemplos en donde esto no ocurra?
Reflexiones Preliminares
Sí.
Ejemplo: Encontrar el máximo número dentro de
un conjunto de números ingresado por el usuario.
A priori no sabemos cuántos números deseará
ingresar por lo que ello se decidirá dinámicamente
en tiempo de ejecución.
Reflexiones Preliminares
¿Se les ocurre alguna forma de resolverlo con lo
que ya conocen?
Solución: Memoria Dinámica
Debo, en tiempo de ejecución, indicarle al
Sistema Operativo que voy a precisar más
memoria y cuánta.
malloc: Memory Allocation
Allocation = Asignación
Allocation ≠ Alocar
Alocar = Causar locura
Luego, la memoria no se aloca.
malloc: Aridad
void* malloc(cantBytes)
Se le piden cantBytes al SO. Devuelve un puntero
a donde comienza dicha memoria o NULL sino.
Nota: Debo castear void al tipo de datos al que va
a apuntar el puntero.
malloc: Ejemplo
int cant;
scanf("%d",&cant);
int* arr;
arr = (int*) malloc(cant*sizeof(int));
int i;
for(i=0; i<cant; i++){
scanf("%d",&arr[i]);
}
malloc: Ejemplo
¿Y eso es todo?
No, debo chequear que obtuve dicha memoria o
informar de lo contrario (no es obligatorio mas sí
muy conveniente).
malloc: Ejemplo
...
int* arr;
arr = (int*) malloc(cant*sizeof(int));
if(arr==NULL){
printf(“Zarpaste en memoria,
loquito!”);
exit(EXIT_FAILURE);
}
...
malloc: Ejemplo
Bueno, ahora sí, eso es todo... ¿No?
Claramente no.
Cuando no uso más esa memoria obtenida
dinámicamente, debo “devolverla” pues la “pedí
prestada”.
free: Libérala Hermano!
free(arr)
Libera la memoria asignada al puntero arr.
Matrices
¡Arreglo de arreglos!
Cada uno puede tener distinto tamaño.
Luego, más general que una matriz aún.
Debo pedir memoria para el arreglo de arreglos y
para cada uno de esos arreglos.
Matrices: Pido Memoria
int filas, cols;
scanf("%d %d",&filas, &cols);
int** arr;
arr = (int**) malloc(filas*sizeof(int*));
//Chequeo si arr==NULL
int i;
for(i=0; i<filas; i++){
arr[i] = (int*)
malloc(cols*sizeof(int));
//Chequeo si arr[i]==NULL
}
Matrices: Libero Memoria
for(i=0; i<filas; i++){
free(arr[i]);
}
free(arr);
miniEjercicio
Hallar la traspuesta de una matriz ingresada por
el usuario desde el teclado y guardarla en un
archivo de texto. ¿Cómo la guardarían?
Nota: traspuesta(A)ij = Aji donde A es de nxm y A
traspuesta es de mxn
calloc: Clear Allocation
void* calloc(cantElems, bytesElem)
Reserva memoria para cantElems de tamaño
bytesElem, es decir, cantElems*bytesElem bytes
de memoria. Sino, devuelve NULL.
malloc vs calloc
malloc no inicializa la memoria.
calloc pone un 0 en cada elemento del array.
Luego, calloc es más costosa temporalmente ya
que debe recorrer todo el arreglo y ponerle 0's.
realloc: Re-allocation
void* realloc(void* ptr, cantBytes)
Reasigna cantBytes de memoria y copia lo
apuntado por ptr a la nueva
dirección de memoria.
realloc: Ejemplo
//arr = [4, 25, 35]
arr= (int*) realloc(arr, 4*sizeof(int));
arr[3] = 72
//arr = [4, 25, 35, 72]
Resumen

malloc para pedir memoria.

calloc para pedir memoria inicializada en 0.

realloc para reasignar memoria (potencialmente
pidiendo más).

free para liberar memoria después de su uso.
C'est fini
¿Questions?

Más contenido relacionado

La actualidad más candente

Pilhas e Filas.ppt
Pilhas e Filas.pptPilhas e Filas.ppt
Pilhas e Filas.pptJoberthSilva
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Adriano Teixeira de Souza
 
Técnica de busca - Bubble Sort
Técnica de busca - Bubble SortTécnica de busca - Bubble Sort
Técnica de busca - Bubble SortBruno Oliveira
 
Codigo para implementar pilas en java
Codigo para implementar pilas en javaCodigo para implementar pilas en java
Codigo para implementar pilas en javaTeresa Freire
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
Plano de aula informática avançada marta magda
Plano de aula informática avançada marta magdaPlano de aula informática avançada marta magda
Plano de aula informática avançada marta magdaDiana Rocha
 
Programação em Banco de Dados - Aula 16/08/2018
Programação em Banco de Dados - Aula 16/08/2018Programação em Banco de Dados - Aula 16/08/2018
Programação em Banco de Dados - Aula 16/08/2018Elaine Cecília Gatto
 
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasTopicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasJosé Antonio Sandoval Acosta
 
Laboratório de Programação II: Uso do ponteiro void *
Laboratório de Programação II: Uso do ponteiro void *Laboratório de Programação II: Uso do ponteiro void *
Laboratório de Programação II: Uso do ponteiro void *Alex Camargo
 

La actualidad más candente (20)

Pilhas e Filas.ppt
Pilhas e Filas.pptPilhas e Filas.ppt
Pilhas e Filas.ppt
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Estrutura de dados - Filas
Estrutura de dados - FilasEstrutura de dados - Filas
Estrutura de dados - Filas
 
Pilhas e Filas
Pilhas e FilasPilhas e Filas
Pilhas e Filas
 
Principais atalhos do windows
Principais atalhos do windowsPrincipais atalhos do windows
Principais atalhos do windows
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Apresentação do MS-DOS
Apresentação do MS-DOSApresentação do MS-DOS
Apresentação do MS-DOS
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 
Técnica de busca - Bubble Sort
Técnica de busca - Bubble SortTécnica de busca - Bubble Sort
Técnica de busca - Bubble Sort
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
Codigo para implementar pilas en java
Codigo para implementar pilas en javaCodigo para implementar pilas en java
Codigo para implementar pilas en java
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Plano de aula informática avançada marta magda
Plano de aula informática avançada marta magdaPlano de aula informática avançada marta magda
Plano de aula informática avançada marta magda
 
Programação em Banco de Dados - Aula 16/08/2018
Programação em Banco de Dados - Aula 16/08/2018Programação em Banco de Dados - Aula 16/08/2018
Programação em Banco de Dados - Aula 16/08/2018
 
JAVA - Matrizes
JAVA - MatrizesJAVA - Matrizes
JAVA - Matrizes
 
Greenfoot 7
Greenfoot 7Greenfoot 7
Greenfoot 7
 
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasTopicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
 
Laboratório de Programação II: Uso do ponteiro void *
Laboratório de Programação II: Uso do ponteiro void *Laboratório de Programação II: Uso do ponteiro void *
Laboratório de Programação II: Uso do ponteiro void *
 
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVANOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
 

Similar a Memoria dinamica en c

Similar a Memoria dinamica en c (20)

Desarrollo desoftware
Desarrollo desoftwareDesarrollo desoftware
Desarrollo desoftware
 
ALP Unidad 3: Tipos de datos estructurados y punteros
ALP Unidad 3: Tipos de datos estructurados y punterosALP Unidad 3: Tipos de datos estructurados y punteros
ALP Unidad 3: Tipos de datos estructurados y punteros
 
Tema 11
Tema 11Tema 11
Tema 11
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Punteros4
Punteros4Punteros4
Punteros4
 
Modelo Dinamico
Modelo DinamicoModelo Dinamico
Modelo Dinamico
 
Almacenamiento de datos - Sistema Binario
Almacenamiento de datos - Sistema BinarioAlmacenamiento de datos - Sistema Binario
Almacenamiento de datos - Sistema Binario
 
Tarea 4 del silabo
Tarea 4 del silaboTarea 4 del silabo
Tarea 4 del silabo
 
Almacenamiento de Datos bit byte megabyte y mucho mas Curso Gratis
Almacenamiento de Datos bit byte megabyte y mucho mas Curso GratisAlmacenamiento de Datos bit byte megabyte y mucho mas Curso Gratis
Almacenamiento de Datos bit byte megabyte y mucho mas Curso Gratis
 
Modelo Simulado
Modelo SimuladoModelo Simulado
Modelo Simulado
 
Semana10
Semana10Semana10
Semana10
 
Python Vs C
Python Vs CPython Vs C
Python Vs C
 
08 - Punteros en lenguaje C
08 - Punteros en lenguaje C08 - Punteros en lenguaje C
08 - Punteros en lenguaje C
 
Razonando Vulnerabilidades con SMT Solvers
Razonando Vulnerabilidades con SMT SolversRazonando Vulnerabilidades con SMT Solvers
Razonando Vulnerabilidades con SMT Solvers
 
Arreglos
ArreglosArreglos
Arreglos
 
Guias
GuiasGuias
Guias
 
Funcional para trollear
Funcional para trollearFuncional para trollear
Funcional para trollear
 
Metodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosMetodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a Objetos
 
Escalada de privilegios mediante infección ELF. Fist Conference
Escalada de privilegios mediante infección ELF. Fist ConferenceEscalada de privilegios mediante infección ELF. Fist Conference
Escalada de privilegios mediante infección ELF. Fist Conference
 
Logica digital
Logica digitalLogica digital
Logica digital
 

Último

DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
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
 

Último (20)

DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
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
 

Memoria dinamica en c