// programa en C++ para ilustrar la asignación dinámica
// y desasignación de memoria usando new y delete
#include <iostream>
using namespace std;
int main ()
{
// Inicialización del puntero a nulo
int* p = NULL;
// Solicitar memoria para la variable
// usando el operador new
p = new(nothrow) int;
if (!p)
cout << "la asignación de memoria falló\n";
else
{
// Almacenar valor en la dirección asignada
*p = 29;
cout << "Value of p: " << *p << endl;
}
// Solicitar bloque de memoria
// usando el operador new
float *r = new float(75.25);
cout << "Value of r: " << *r << endl;
// Solicitar bloque de memoria de tamaño n
int n = 5;
int *q = new(nothrow) int[n];
if (!q)
cout << "la asignación de memoria falló\n";
else
{
for (int i = 0; i < n; i++)
q[i] = i+1;
cout << "Valor almacenado en bloque de memoria:";
for (int i = 0; i < n; i++)
cout << q[i] << " ";
}
// Liberar la memoria asignada
delete p;
delete r;
// Liberar el bloque de la memoria asignada
delete[] q;
return 0;
}