如何捕获/检查/测试无效指针?
m_gTest在.h文件中声明
没有初始化
try
{
delete m_gTest;
}
catch(...)
{
std::cout << "catch" << '\n';
}
而不是抓住它
free(): invalid pointer: 0x00000000006053b8 ***
如何捕获/检查/测试无效指针?
temp[i] = m_gTest[i];
不会导致错误,但如果m_gTest无效,则放入temp的任何内容都将出错
o,并已使用
if(m_gTest != NULL)
答案 0 :(得分:2)
通常无法检查指针是否有效&#34;仅给出指针。当然,在&#34;无效&#34;上调用删除指针不会抛出异常,除非是通过未定义的行为。
基本上,您的代码需要明确跟踪指针是否有效&#34;或不。或者更好地使用智能指针,例如std :: unique_ptr。