Código
void GuardarContacto(HWND hDlg) { aux = origen; ofstream Archivo; Archivo.open( "C:\\Users\\artur\\OneDrive\\Documentos\\Visual Studio 2017\\Projects\\Proyecto Final Programacion 2\\Proyecto Final Programacion 2\\MisContactos.bin", ios::trunc | ios::out | ios::binary); if (Archivo.is_open()) { while (aux != NULL) { Archivo.write(reinterpret_cast<char *>(aux), sizeof(Contacto)); aux = aux->sig; } Archivo.close(); return; } else { MessageBox(hDlg, "No se pudo abrir el archivo", "ERROR", MB_ICONERROR | MB_OK); } return; } void CargarContacto(HWND hDlg) { aux = origen; ifstream Archivo; Archivo.open( "C:\\Users\\artur\\OneDrive\\Documentos\\Visual Studio 2017\\Projects\\Proyecto Final Programacion 2\\Proyecto Final Programacion 2\\MisContactos.bin", ios::binary | ios::in); if (Archivo.is_open()) { while (!Archivo.eof()) { if (origen == NULL) { origen = new Contacto; Contacto *temp = new Contacto; Archivo.read(reinterpret_cast<char*>(temp), sizeof(Contacto)); origen->Nombre = temp->Nombre; origen->Apellido = temp->Apellido; origen->Calle = temp->Calle; origen->EntreCalles = temp->EntreCalles; origen->Correo = temp->Correo; origen->Colonia = temp->Colonia; origen->Municipio = temp->Municipio; origen->Estado = temp->Estado; origen->Pais = temp->Pais; origen->NumTelefono = temp->NumTelefono; origen->NumCP = temp->NumCP; strcpy(origen->Foto1, temp->Foto1); strcpy(origen->Foto2, temp->Foto2); origen->ant = NULL; origen->sig = NULL; delete reinterpret_cast<char*>(temp); continue; } aux = origen; while (aux->sig != NULL) aux = aux->sig; aux->sig = new Contacto; Contacto *temp = new Contacto; Archivo.read(reinterpret_cast<char*>(temp), sizeof(Contacto)); aux->sig->ant = aux; aux->sig->sig = NULL; aux = aux->sig; aux->Nombre = temp->Nombre; aux->Apellido = temp->Apellido; aux->Calle = temp->Calle; aux->EntreCalles = temp->EntreCalles; aux->Correo = temp->Correo; aux->Colonia = temp->Colonia; aux->Municipio = temp->Municipio; aux->Estado = temp->Estado; aux->Pais = temp->Pais; aux->NumTelefono = temp->NumTelefono; aux->NumCP = temp->NumCP; strcpy(aux->Foto1, temp->Foto1); strcpy(aux->Foto2, temp->Foto2); delete reinterpret_cast<char*>(temp); //Justo en delete reinterpret_cast<char*>(temp); ocurre el error por lo que les mencione antes. } Archivo.close(); return; } //MessageBox(hDlg, "No pueden cargarse los contactos", "ERROR", MB_ICONERROR | MB_OK); return; }