 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
diabolik100 Cdt

Registrado: 05 Ago 2004Mensajes: 15
|
Publicado: Jue 05 Ago, 2004 9:23 am Asunto: Liberar memoria dinamica |
|
|
Hola, espero que me puedan responder esta duda que tengo. Estoy trabajando en c++ builder 5 y estoy utilizando una estructura en la que incluyo un apuntador hacia otra estructura. En la ejecucion utilizo una funcion en la que creo un arreglo dinamico de estructuras con esta apuntador, despues regreso la estructura completa, la que incluye al arreglo de estructuras dinamico. Mi duda es acerca de como liberar ese arreglo dinamico una vez que salgo de esa funcion, pero que me quede disponible para la funcion que la llama, o el builder libera esa memoria por mi? No se si me explique, pero para que quede mas claro incluyo codigo:
//estructura para el arreglo dinamico
struct DatosVenta
{
int ID_Pedido, ID_Producto;
};
//estructura que incluye el apuntador a la otra estructura
struct DatosPedido
{
int valor;
struct DatosVenta *linea;
};
//en esta linea llamo a la funcion que me regresa la estructura ya con
//el arreglo dinamico
DatosPedido datp=SeleccionarPedido();
//en esta funcion lleno mi estructura y creo el arreglo dinamico y regreso
//la estructura llena
DatosPedido SeleccionarPedido()
{
DatosPedido datos;
//llenar datos
datos.linea=new struct DatosVenta[valor];
//llenar datos.linea
return datos
}
en esta ultima parte es donde tengo la duda de como liberar este arreglo que estoy utilizando, si es que lo debo de liberar, porque necesito esos datos para la funcion que llama.
Gracias por su ayuda!! |
|
| Volver arriba |
|
 |
ciclido Ens

Registrado: 19 Ago 2003Mensajes: 45Ubicación: Gijon
|
Publicado: Jue 05 Ago, 2004 11:35 am Asunto: |
|
|
Si no he entendido mal, la memoria dinámica que has reservado debes liberarla, pero no tiene porque ser nada más reservarla. Tu usala mientras la necesites, y una cuando no vayas a necesitar más esos datos, liberas la memoria.
La forma de liberarla sería así:
| Código: |
// ESTO ES LO QUE TU HAS ESCRITO
struct DatosVenta
{
int ID_Pedido, ID_Producto;
};
DatosPedido SeleccionarPedido()
{
DatosPedido datos;
//llenar datos
datos.linea=new struct DatosVenta[valor];
//llenar datos.linea
return datos
}
DatosPedido datp=SeleccionarPedido();
/* Haces con la estructrura lo que tengas que hacer */
..............................................................................
// Una vez ya no necesites más la estructura, liberas la memoria
delete datp.linea;
|
Espero ke te sirva
Un saludo |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|