我创建了自己的类,但是当我尝试实例化它时,我碰到了一堵墙。
这是我的代码:
m_interpolation = new Interpolation(m_mesureList, width, height, parent);
delete m_interpolation;
哪会产生错误:
0B3E9E40的堆块在0B3E9E68修改为超过要求的大小20
我看不出我做错了什么......
有关此信息,请参阅我的课程Interpolation.h和Interpolation.cpp的完整定义,如果有任何帮助的话。
添加了析构函数,但仍未解决问题。
Interpolation::~Interpolation()
{
delete m_progress;
m_progress = 0;
}
答案 0 :(得分:4)
在ctor中:
填充m_w
:最多(m_N-1)
for (int i(0); i < m_N; ++i)
{
m_pt.push_back(QPointF(mesureList[i]->getX(), mesureList[i]->getY()));
m_w.push_back(mesureList[i]->getAngle());
}
稍后:访问m_w[m_N]
,超出了向量的末尾
for (i = m_N; i >= 0; --i)
{
sum = m_w[i];
for (j = i+1; j < m_N; j++) sum -= LU[i][j]*m_w[j];
m_w[i] = sum / LU[i][i];
}
答案 1 :(得分:0)
构造函数Interpolation :: Interopolation()或析构函数Interpolation :: ~Interpolation()内部的东西超出了对象的大小。