Reserva y liberación de memoria
-
Upload
jose-telleria -
Category
Documents
-
view
63 -
download
9
Transcript of Reserva y liberación de memoria
![Page 1: Reserva y liberación de memoria](https://reader036.fdocumento.com/reader036/viewer/2022082516/55cf9dfabb61ebb0728b477a/html5/thumbnails/1.jpg)
Reserva y Liberación de Memoria
Universidad Nacional Experimental
“Francisco de Miranda”
Aprendizaje Dialógico Interactivo
Unidad Curricular: Computación II.
Realizado por: Burgos José
Santa Ana de Coro; Abril del 2013
![Page 2: Reserva y liberación de memoria](https://reader036.fdocumento.com/reader036/viewer/2022082516/55cf9dfabb61ebb0728b477a/html5/thumbnails/2.jpg)
Reserva y liberación de memoria • Los operadores new y delete se utilizan para reservar y liberar
memoria dinámicamente. New y delete son parte del lenguaje C++ y
no parte de una librería como sucedía con las funciones
equivalentes malloc() y free() de C. Ahora los
operadores new y delete.
• El propósito de new es crear arrays cuyo tamaño pueda ser
determinado mientras el programa se ejecuta.
• delete funciona igual que free() en C. La memoria a la que apunta el
puntero es liberado, pero no el puntero en si.
![Page 3: Reserva y liberación de memoria](https://reader036.fdocumento.com/reader036/viewer/2022082516/55cf9dfabb61ebb0728b477a/html5/thumbnails/3.jpg)
![Page 4: Reserva y liberación de memoria](https://reader036.fdocumento.com/reader036/viewer/2022082516/55cf9dfabb61ebb0728b477a/html5/thumbnails/4.jpg)
![Page 5: Reserva y liberación de memoria](https://reader036.fdocumento.com/reader036/viewer/2022082516/55cf9dfabb61ebb0728b477a/html5/thumbnails/5.jpg)
Ejemplos #include <stdio.h>#include <stdlib.h> int *reserva_memoria(int num_element){ int *pt; pt = (int *) calloc (num_element, sizeof(int)); if (!pt){ printf(“Imposible reservar memoria.\n”); ...}return pt;}
![Page 6: Reserva y liberación de memoria](https://reader036.fdocumento.com/reader036/viewer/2022082516/55cf9dfabb61ebb0728b477a/html5/thumbnails/6.jpg)
Ejemplos void incrementarPorValor(int n){ n++; cout << n << endl; } void incrementarPorReferencia(int* n) { *n++ cout << *n << endl; } int main(void) { int n = 5; cout << n << endl; // imprime 5 incrementarPorValor(n); // imprime 6 cout << n << endl; // imprime 5 incrementarPorReferencia(&n); // imprime 6. cout << n << endl; // imprime 6 return 0;
![Page 7: Reserva y liberación de memoria](https://reader036.fdocumento.com/reader036/viewer/2022082516/55cf9dfabb61ebb0728b477a/html5/thumbnails/7.jpg)
![Page 8: Reserva y liberación de memoria](https://reader036.fdocumento.com/reader036/viewer/2022082516/55cf9dfabb61ebb0728b477a/html5/thumbnails/8.jpg)
![Page 9: Reserva y liberación de memoria](https://reader036.fdocumento.com/reader036/viewer/2022082516/55cf9dfabb61ebb0728b477a/html5/thumbnails/9.jpg)