[Índice][Previo] [Siguiente]

Reserva dinámica de memoria

Los operadores new y delete se utilizan para reservar y liberar memoria dinámicamente, de forma similar a las funciones malloc() y free() en C. Ahora los operadores new y delete son parte del lenguaje C++ y no parte de una librería. El propósito de new es crear arrays cuyo tamaño pueda ser determinado mientras el programa corre.
delete funciona igual que free() en C. El contenido al que apunta el puntero es borrado, pero no el puntero en sí. Se pueden crear más variables y hacer que la localización sea el mismo puntero.
Veamos un ejemplo de utilización de estos operadores:

# include <iostream.h>

main()
{
  int index, *point1, *point2;

  point1 = &index;
  *point1 = 77;
  point2 = new int;
  *point2 = 173;
  cout <<"Los valores son " << index <<" " << *point1 << " "<< *point2 <<'\n';

  point1 = new int;
  point2 = point1;
  *point1 = 999;
  cout <<"Los valores son " << index <<" " << *point1 << " "<<   *point2 <<'\n';

  delete point1;

  float *float_point1, *float_point2 = new float;
  float_point1 = new float;
  *float_point2 = 3.14159;
  *float_point1 = 2.4 * (*float_point2);
  delete float_point2;
  delete float_point1;

  char *c_point;

  c_point = new char;
  delete c_point;
  c_point = new char [sizeof(int) + 133];
  delete c_point;
}


Resultado de la ejecución:

Los valores son 77 77 173
Los valores son 77 999 999

[Índice][Previo] [Siguiente]


Última modificación: 1-4-97

Comentarios, sugerencias, ideas...

© Beatriz Fuentes Arenaz, 1996-1997

Free Web Hosting