Я хочу скопировать содержимое страницы в другой объект Page.
Однако это имеет ошибку, я думаю, что это связано с распределением памяти.
Я не нашел конкретной причины. Кто-нибудь объяснит о причине?
Я прикрепил свой исходный код к копирующему объекту. Поблагодарить
DB.Pages = new Page[numPages];
Page* tmp_Pages = new Page[numPages];
uint count = 0;
for(uint p = 0;p < numPages; p++){
uint *data = new uint[MAX_NUM_NODES_PER_DATA];
uint *tmp_data = DB.getPageByID(p)->data;
memcpy(data, tmp_data, sizeof(uint) * MAX_NUM_DATAS_PER_PAGE);
tmp_Pages[count].data = data;
count++;
}
memcpy(DB.Pages, tmp_Pages, sizeof(Page) * numPages);
Ошибка файла mlock.c
void __cdecl _unlock (int locknum)
{
/ *
* покинуть критический раздел.
* /
LeaveCriticalSection (_locktable [locknum] .lock);
}
Microsoft C ++ исключение: std :: bad_alloc (расположение в памяти 0x002afa90)
Задача ещё не решена.
Других решений пока нет …