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.!!!!
*/