C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C++Exception Thrown:出现在VS2017locale0.cpp和delete_scalar.cpp文件异常

解决C++Exception Thrown:出现在VS2017locale0.cpp和delete_scalar.cpp文件中的异常问题

作者:OrangRain

文章主要讨论了在VS2017中可能出现的C++异常,并指出异常可能出现在locale0.cpp和delete_scalar.cpp文件,建议重点检查使用malloc或new开辟的内存是否正确

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方法开辟的内存是否正确。

总结

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

您可能感兴趣的文章:
阅读全文