memoriadinamica 121219185323 phpapp01

Páginas: 5 (1003 palabras) Publicado: 19 de agosto de 2015
Gonzalo

Memoria Dinámica
Programación I
Li

006
2
or
t
s
Pa

nz
o
c G

r
o
t
as
P
 
a lo

Gustavo Solis

Definición
Es memoria que se reserva en tiempo de ejecución. Su principal
ventaja frente a la estática, es que su tamaño puede variar
durante la ejecución del programa.(EnstorC, el programador es
a
P
 
encargado
de
liberar
esta
memoria
cuando
no la utilice más). El
lo
Gonzalo
a
z
n
o
uso dememoria dinámica es necesario
cuando no conocemos el
G
 
c
i
número de datos/elementos aL tratar; sin embargo es algo más
lento, ya que el tiempo ejecución depende del espacio que se va
ha usar Hay que mencionar que la memoria estática es mas
rápida ya que esta disponible desde que se inicio el programa.

006
2
or
t
s
Pa

Datos Dinámicos:
Su tamaño y forma es variable (o puede serlo) a lo largode un programa, por lo que se crean y destruyen en
tiempo de ejecución. Esto permite dimensionar la
estructura de datos de una forma r precisa: se va
to
s
a
asignando memoria en tiempo de ejecución
según se va
 P
o
l
Gonzalo
za
necesitando.
n
o
c G
i
L

006
2
or
t
s
Pa

Asignación de Memoria dinámica
Los punteros proporcionan el soporte necesario para el potente
sistema de asignación dinámica dememoria de C.
► La asignación dinámica es la forma en la que un programa puede
obtener memoria mientras se está ejecutando.
► A las variables globales por ejemplo, se les asigna memoria en
r
o
t
tiempo de compilación.
as
P
 
GoDurante

nzalo la ejecución no se pueden
alo añadir variables globales o
z
on las que un programa necesita
locales, pero existen ocasionesc Gen
Li
usar cantidades de memoriavariables.


006
2
or
t
s
Pa

Gonzalo
Li

006
2
or
t
s
Pa

nz
o
c G

r
o
t
as
P
 
a lo

NEW - Asigna memoria



New devuelve una referencia a una posición en memoria
que a guardar el tipo indicado en la sentencia new.
Tras una llamada fructífera, new devuelve un puntero. Si no
r
hay suficiente memoria libre para satisfacer
la petición, se
o
t
s
a un NULL.
P
da un fallo de asignación ydevuelve
 
lo

Gonzalo


za
n
o
G
 
c

El siguiente código asigna memoria
para guardar datos de
Li
una estructura persona:
persona *p;
p = new persona;

006
2
or
t
s
Pa

DELETE – Libera memoria
La instrucción delete es la opuesta a new porque devuelve al
sistema la memoria previamente asignada.
 Una vez que la memoria ha sido liberada, puede ser reutilizada
r
o
t
en una posterior llamada a new.
as

Gonzalo
a lo
z
Ejemplo:
n
o
 G
c
i
persona *p;
L
p = new persona;
……..
delete
p;
6


00
2
or
t
s
Pa

La biblioteca estándar de C proporciona las funciones malloc,
calloc, realloc y free para el manejo de memoria
dinámica. Estas funciones están definidas en el archivo de
cabecera stdlib.h. 
MALLOC

Reserva un bloque de memoria y devuelve un puntero void al inicio
de la misma. Tiene la siguientedefinición:
void *malloc(size_t size);
donde el parámetro size especifica el número
de bytes a reservar.
r
o
st
a
En caso de que no se pueda realizar la asignación,
devuelve el valor
 P
o
l
Gonzalo
a
nulo
(definido en la macro NULL), olo
nz que permite saber si hubo
c G
i
errores en la asignación de memoria.
L

006
2
or
t
s
Pa

CALLOC
Funciona de modo similar a malloc, pero además de reservarmemoria, inicializa a 0 la memoria reservada. Se usa comúnmente
para arreglos y matrices. Está definida de esta forma:
void *calloc(size_t nmemb, size_t size);
El parámetro nmemb indica el número de elementos a reservar,
y size el tamaño de cada elemento. El ejemplo anterior se podría
reescribir con calloc de esta forma:
or
Gonzalo
Li

006
2
or
t
s
Pa

nz
o
c G

st
a
 P
o
l
a

REALLOC
La funciónrealloc redimensiona el espacio asignado de forma
dinámica anteriormente a un puntero. Tiene la siguiente
definición:
void *realloc(void *ptr, size_t size);
Donde ptr es el puntero a redimensionar, y size el nuevo
tamaño, en bytes, que tendrá. Si el puntero
r que se le pasa tiene
o
t
as
P
 
el
valor
nulo,
esta
función
actúa
como
 
malloc.
Si la reasignación
o
l
Gonzalo
za
n
no se pudo hacer con...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Medioambiente 091017093820 Phpapp01
  • Conceptoyaplicacindelmantenimientocorrectivopreventivoypredi ctivo 140216122213 Phpapp01
  • Principiosdelvernier 100916225017 Phpapp01
  • tema7 elfranquismo 130805153303 phpapp01
  • Leyesdeladialectica 121105183939 Phpapp01
  • silvanalarevolucioninglesa 111020054905 phpapp01
  • Capitulo47 100705171519 Phpapp01
  • Segundaguerramundial 110906223206 Phpapp01

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS