我很困惑,为什么我收到此错误。我环顾四周,发现有类似错误的人,他们的问题是没有为NULL分配足够的新内存。我没想到这是我的问题,因为我添加了strlen + 1?我迷失了......
//Copy Constructor
Rational::Rational(const Rational& other) :
m_numerator(other.m_numerator), m_denominator(other.m_denominator),
m_name(NULL)
{
m_name = NULL;
if (other.m_name != NULL)
{
this->m_name = new char[strlen(other.m_name) + 1]; //ErrorMarkHere
strcpy(this->m_name, other.m_name);
}
}
答案 0 :(得分:1)
0xCCCCCCCC
表示使用某些编译器的未初始化内存。几乎唯一可能在该行上失败的是strlen(other.m_name)
,其中other.m_name
可能是之前提到的指针。 other
如何从崩溃的地方构建出来?