簡體   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