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.!!!!
*/
/*
Comentario del Autor. Esta es la página más vista del blog.!!!!
*/