Здравствуйте!
Имеется такой код:
struct Info{
CString razd;
CString stroka;
};
CArray<Info,Info> nastr;
//и две фуекции - одна создает файл а другая затем его читает
void CNastr::CreateFile()
{
Info inf;
CFile file("nastr.nas", CFile::modeWrite | CFile::modeCreate);
CArchive ar(&file, CArchive::store);
int ArSize=nastr.GetSize();
ar.Write(&ArSize,sizeof(int));
for (int i=0;i<ArSize;i++)
{
inf = nastr.GetAt(i);
ar.Write(&inf,sizeof(Info));
}
ar.Close();
file.Close();
}
void CNastr::Init()
{
CFile file("nastr.nas", CFile::modeRead);
CArchive ar(&file, CArchive::load);
int ArSize;
Info inf=new Info;
ar.Read(ArSize,sizeof(int));
for (int i=0;i<ArSize;i++)
{
ar.Read(inf,sizeof(Info));
nastr.Add(inf);
}
ar.Close();
file.Close();
}
При чтении файла вываливается Assertion Failed, File dbgheap.c Line 1011 Expression _CrtlsValidHeapPointer(pUserData)
Чего ему не хватает :???:
Пробовала выделять память динамически, но это не помогает.