domingo, 28 de abril de 2013

Array Dinámico con C++

Leyendo a Fred Swartz en sus notas acerca de c++ consigo algo que me traía cabezón desde hace días, aunque me la llevo bastante bien con lenguajes de programación como python y php, mi dolor de cabeza siempre ha sido C/C++ con su manejo de memoria a bajo nivel y los benditos punteros que tanto detesto. 

Una de las cosas que siempre me ha costado es manejar array dinámicos a mi completo y total antojo. Siempre se cometía errores como:


  • Declarar el array con una cantidad de elementos en exceso (100000 posiciones) lo que constituye perdida de memoria y que si por andanzas de los ángeles de la programación son 100.001 posiciones a ser ocupadas aparecerá un error como "overflow memory ....  no seas bruto chico".(Recordando a mi profesor† de matemáticas(2014))
  • Declarar el array de esta forma conllevara a malgastar memoria y que existan colisiones entre los valores de memoria.  
Debo primero inicializar un puntero del tipo que deseo utilizar, luego proceder a solicitar al usuario el tamaño de mi array usando cin o scanf (según los gustos), colocar todas las posiciones en 0, luego usarlo como normalmente y por ultimo eliminarlo.
  
   int* a = NULL;   
   int n;           
   cin >> n;        
   a = new int[n];  
   for (int i=0; i<n; i++){

   a[i]=0;
   
   }
   delete []  a;
   a=NULL;
   
   

Espero les sea de utilidad.
/*
Comentario del Autor. Esta es la página más vista del blog.!!!!
*/

8 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Muy sencilla tu explicación, en verdad muchas gracias

    ResponderEliminar
  3. opino igual , me sacaste de un error

    ResponderEliminar
  4. Graciass! de verdad ya me sabia esto, pero de repente se olvida si no lo haces seguido!.. ojalá así hubiera más blogs como el tuyo! sigue así!

    ResponderEliminar
  5. Con haber leido ese codigo, lo entendi sin necesidad de explicaciones

    ResponderEliminar