Memoria Dinamica En C

Páginas: 3 (556 palabras) Publicado: 4 de noviembre de 2015
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 noocurra?

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 sedecidirá 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 elpuntero.

malloc: Ejemplo
int cant;
scanf("%d",&cant);
int* arr;
arr = (int*) malloc(cant*sizeof(int));
int i;
for(i=0; i scanf("%d",&arr[i]);
}

malloc: Ejemplo

¿Y eso es todo?
No, debochequear 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));

loquito!”);if(arr==NULL){
printf(“Zarpaste en memoria,
}
...

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...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Memoria dinamica en c++
  • Memoria Dinamica
  • Memoria dinamica
  • Memoria dinamica
  • Memoria Dinamica
  • Memoria Dinamica
  • Dinamica de sistema c & c
  • Manejo de memoria dinámica

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS