繁体   English   中英

QList的C ++ Qt内存分配异常

[英]C++ Qt memory allocation exception with QList

这怎么可能发生,从而引发异常

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

与QList listOne吗? 我删除迭代的float *数组,直到达到QList中的元素数量为止。

编辑与解决方案

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

How can this ever happen that this throws an exception

一种可能性:您在列表中两次添加了一个数组。 一种解决方法:

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

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

编辑:

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

我怀疑...一个非常简单的解决方法:

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

现在将pi添加到列表中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM