- Tema Autor
- #1
Tengo un problema al borrar memoria dinámica en estructuras anidada
Empleado llamara a persona y esta a su vez a fecha
Lo de rojo es lo que esta mal segun el compilador xD
Nose que este mal si la forma en que manejo el operador punto o que pero siempre me dice
por ejemplo fecha no ha sido declarado, dia no ha sido declarado etc etc,
ayudaaa
Código:
struct Fecha{
int Dia;
int Mes;
int Anio;
};
struct Persona{
string Nombre;
string RFC;
Fecha *fecha;
};
struct Empleado{
int ID;
double Sueldo;
string Puesto;
Persona *P;
};
Código:
int main()
{
Empleado *Emp;
int n,i;
cout<<"Captura El Numero de Empleados: ";
cin>>n;
if(n>0)
{
Emp=new Empleado[n];
for(i=0;i<n;i++)
Leer(&Emp[i]);
system("CLS");
for(i=0;i<n;i++)
{
Imprimir(&Emp[i]);
system("pause");
}
}
else cout<<"ERROR"<<endl;
[COLOR="#FF0000"]delete (*Emp).P.fecha;
delete (*Emp).P;[/COLOR]
delete []Emp;
return 0;
}
Código:
void Leer(Empleado *E)
{
cout<<"Captura Datos del Empleado"<<endl;
cout<<"ID: ";
cin>>(*E).ID;
cout<<"Sueldo: ";
cin>>(*E).Sueldo;
cout<<"Puesto: ";
getline(cin,(*E).Puesto);
[COLOR="#FF0000"](*E).P=new Persona;[/COLOR]
cout<<"Nombre: ";
[COLOR="#FF0000"] getline(cin,*(*E).P.Nombre);[/COLOR]
cout<<"RFC: ";
[COLOR="#FF0000"]getline(cin,*(*E).P.RFC);[/COLOR]
[COLOR="#FF0000"](*E).P.fecha=new Fecha;[/COLOR]
cout<<"Captura la fecha de Nacimiento"<<endl;
cout<<"Dia: ";
[COLOR="#FF0000"] cin>>*(*E).P.fecha.Dia;[/COLOR]
cout<<"Mes: ";
[COLOR="#FF0000"]cin>>*(*E).P.fecha.Mes;[/COLOR]
cout<<"Anio: ";
[COLOR="#FF0000"]cin>>*(*E).P.fecha.Anio;[/COLOR]
}
Nose que este mal si la forma en que manejo el operador punto o que pero siempre me dice
por ejemplo fecha no ha sido declarado, dia no ha sido declarado etc etc,
ayudaaa
