Ошибка необработанного исключения

Я испытываю unhandled exception в xutility

if (_Myproxy != 0)
{   // proxy allocated, drain it
_Lockit _Lock(_LOCK_DEBUG);

for (_Iterator_base12 **_Pnext = &_Myproxy->_Myfirstiter;
*_Pnext != 0; *_Pnext = (*_Pnext)->_Mynextiter)
(*_Pnext)->_Myproxy = 0;  <------- unhandled exception here
_Myproxy->_Myfirstiter = 0;
}

У меня нет контроля над xutility, это unhandled exception поезд идет от

std::string BinarySearchFile::readT(long filePointerLocation, long sizeOfData)
{
try{
if(binary_search_file){
std::string data;
binary_search_file.seekp(filePointerLocation);
binary_search_file.seekg(filePointerLocation);
binary_search_file.read(reinterpret_cast<char *>(&data), sizeOfData);

return data;  <------- branch into xutility and subsequent unhandled exception

}else if(binary_search_file.fail()){
throw CustomException("Attempt to read attribute error");
}

}
catch(CustomException &custom_exception){  // Using custom exception class
std::cout << custom_exception.what() << std::endl;
}

}

Обычно return будет переходить к

std::string BinarySearchFile::read_data(long filePointerLocation, long sizeOfData){
return readT(filePointerLocation, sizeOfData);
}

И впоследствии вернемся к первоначальному вызову

attributeValue = data_file->read_data(index, size);

Что я делаю неправильно?

2

Решение

data Строка пуста, когда вы пытаетесь читать в нее. Это повредит память где-то.

Вы должны добавить data.resize(sizeOfData) выделить место, а затем прочитать в его буфер

binary_search_file.read(&data[0], sizeOfData);
^^^

не в самом строковом объекте.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]