Я пытаюсь хранить данные с двусвязными списками. Поэтому я сделал оператор while, который передает каждый узел в архив.
if (ar.IsStoring())
{
while (Actual)
{
ar << Actual->name;
ar << Actual->adresse;
ar << Actual->email;
ar << Actual->fax;
ar << Actual->firma;
ar << Actual->geburtsdatum;
ar << Actual->geschlecht;
ar << Actual->land;
ar << Actual->ort;
ar << Actual->plz;
ar << Actual->telefon;
ar << Actual->vorname;
Actual = Actual->next;
}
}
Это работает. Моя проблема заключается в загрузке переменных. Это 1:1 то же самое. (Вместо ‹‹ на >>).
Я всегда получаю сообщение об ошибке «Нарушение доступа к месту чтения 0xcdcdcdfd». Я действительно не знаю, почему. Возникла ошибка с Actual = Actual->next;
наверху функции.
Если вам это нужно, вот моя полная функция Serialize:
void CDatenbankDoc::Serialize(CArchive& ar)
{
Actual = Start;
Actual = Actual->next;
if (ar.IsStoring())
{
while (Actual)
{
ar << Actual->name;
ar << Actual->adresse;
ar << Actual->email;
ar << Actual->fax;
ar << Actual->firma;
ar << Actual->geburtsdatum;
ar << Actual->geschlecht;
ar << Actual->land;
ar << Actual->ort;
ar << Actual->plz;
ar << Actual->telefon;
ar << Actual->vorname;
Actual = Actual->next;
}
}
else
{
while (Actual)
{
ar >> Actual->name;
ar >> Actual->adresse;
ar >> Actual->email;
ar >> Actual->fax;
ar >> Actual->firma;
ar >> Actual->geburtsdatum;
ar >> Actual->geschlecht;
ar >> Actual->land;
ar >> Actual->ort;
ar >> Actual->plz;
ar >> Actual->telefon;
ar >> Actual->vorname;
Actual = Actual->next;
}
}
}
Надеюсь, вы поможете мне решить эту проблему. Спасибо
Actual
. По сути, вы даже не должны использовать указатели в C++. - person IInspectable   schedule 20.11.2013