Programación General > C/C++
una consulta sobre el siguiente programa
Eternal Idol:
Reservar:
TAfd *v = new TAfd[100];
Usar
Liberar:
delete[] v;
pacorubio77:
--- Cita de: "Eternal Idol" ---Reservar:
TAfd *v = new TAfd[100];
Usar
Liberar:
delete[] v;
--- Fin de la cita ---
El objetivo de utilizar memoria dinámica es porque las posiciones de v que no se ocupan se pueden borrar?, la asignacion y todol o demás es idéntico que con los vectores estáticos?
Otra pregunta, ahora estoy reservando 100 posiciones para un TAfd, pero las que no se usan, tengo que hacer delete? porque si lo que queremos es sólo utilizar la memoria que usamos y la que no usamos eliminarla, tendría que hacer delete en lo que no uso?
Y una ultima pregunta, si yo antes, TAfd v[100], era una parametro de una funcion...por ejemplo
void MiFuncion(v), cuyo prototipo es void MiFunciion(TAfd v[]) ,ahora como lo meto como parámetro? tengo que cambiar la notacion ?cual sería la correcta?
Un saludo,espero respuesta.
Gracias.
m0skit0:
--- Cita de: "pacorubio77" ---El objetivo de utilizar memoria dinámica es porque las posiciones de v que no se ocupan se pueden borrar?, la asignacion y todol o demás es idéntico que con los vectores estáticos?
--- Fin de la cita ---
No, las variables locales se reservan en la pila, la asignación de memoria se reserva del montículo (heap).
--- Cita de: "pacorubio77" ---ahora estoy reservando 100 posiciones para un TAfd, pero las que no se usan, tengo que hacer delete?
--- Fin de la cita ---
Si la reservas en lo mismo que usarla y por tanto debes hacer delete. Si no las usas, no las reserves y asi optimizas tu programa.
--- Cita de: "pacorubio77" ---ahora como lo meto como parámetro? tengo que cambiar la notacion ?cual sería la correcta?
--- Fin de la cita ---
No hay diferencia con antes.
pacorubio77:
Es decir despues de utilizarlo debo de hacer delete []v?, para borrar el vector? o tengo que hacer
--- Código: C++ --- for(int i=0;i<100;i++){ delete[i]v} ?? porque estó es para liberar memoria..verdad?
Eternal Idol:
--- Cita de: "pacorubio77" ---Es decir despues de utilizarlo debo de hacer delete []v?, para borrar el vector? o tengo que hacer
--- Fin de la cita ---
Si, tal y como figura en el que codigo de ejemplo que te di:
--- Código: Text ---delete[] v;
Navegación
[*] Página Anterior
Ir a la versión completa