2

独自のクラスを作成しましたが、インスタンス化しようとすると壁にぶつかります。

これが私のコードです:

m_interpolation = new Interpolation(m_mesureList, width, height, parent);
delete m_interpolation;

エラーを生成するもの:

0B3E9E68 で変更された 0B3E9E40 のヒープ ブロックは、要求されたサイズ 20 を超えています

何が間違っているのかわかりません...

参考までに、私のクラスInterpolation.hInterpolation.cppの完全な定義をここに示します。

デストラクタを追加しましたが、それでも問題は解決しませんでした。

Interpolation::~Interpolation()
{
    delete m_progress;
    m_progress = 0;
}
4

2 に答える 2

4

センター内: 人口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];
}
于 2012-06-22T16:25:52.130 に答える
0

コンストラクタ Interpolation::Interopolation() またはデストラクタ Interpolation::~Interpolation() 内の何かが、オブジェクトのサイズを超えて書き込んでいます。

于 2012-06-22T16:13:17.393 に答える