-1

这怎么会发生,这会引发异常

    for(int h = 0 ; h < listOne.count() ; ++h) {
        delete[] listOne[h];
    }

与 QList listOne ?我删除 float* 数组迭代,直到我达到 QList 中的元素数......

编辑和解决方案

实际上,当我在 QList 的一项中仅添加一个浮点数时,它会失败。然后,它不再是 afloat*并且你不能delete []它。

4

1 回答 1

2
How can this ever happen that this throws an exception

一种可能性:您在列表中添加了一个数组 2 次。一个修复:

for(int h = 0 ; h < listOne.count() ; ++h) {
    delete[] listOne[h];
    listOne[h]=nullptr;
}

也许其他错误(您向列表添加了非数组指针)。

编辑:

实际上,当我在 QList 的一项中仅添加一个浮点数时,它会失败。然后,它不再是 float* 并且您不能删除 [] 它。

我怀疑......一个非常简单的修复:

float *pi=new float[1];
pi[0]=3.14f;

现在添加pi到列表中

于 2013-03-21T10:03:06.803 回答