C++Exception Thrown:出现在VS2017locale0.cpp和delete_scalar.cpp文件异常

异常若出现在以下地方时

_MRTIMP2_PURE_NPURE void __CLRCALL_PURE_OR_CDECL locale::_Locimp::_Locimp_dtor(_Locimp* _This)
{	// destruct a _Locimp
_BEGIN_LOCK(_LOCK_LOCALE)	// prevent double delete
	for (size_t count = _This->_Facetcount; 0 < count; )
		if (_This->_Facetvec[--count] != 0)
			delete _This->_Facetvec[count]->_Decref();
	free(_This->_Facetvec);
_END_LOCK()
}
_MRTIMP2_PURE_NPURE void __CLRCALL_PURE_OR_CDECL _Locinfo::_Locinfo_ctor(_Locinfo *pLocinfo, const char *locname)
{	// switch to a named locale
const char *oldlocname = setlocale(LC_ALL, 0);

pLocinfo->_Oldlocname = oldlocname == 0 ? "" : oldlocname;
if (locname != 0)
	locname = setlocale(LC_ALL, locname);
pLocinfo->_Newlocname = locname == 0 ? "*" : locname;
}
_CRT_SECURITYCRITICAL_ATTRIBUTE
void __CRTDECL operator delete(void* const block) noexcept
{
    #ifdef _DEBUG
    _free_dbg(block, _UNKNOWN_BLOCK);
    #else
    free(block);
    #endif
}

可以重点检查

使用malloc函数或new方法开辟的内存是否正确。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章