簡體   English   中英

Qt:如何調試QByteArray中的錯誤分配異常?

[英]Qt : How to debug a bad alloc exception in QByteArray?

我有一個QNetworkReply ,我想將下載的字節存儲在QByteArray

connect(_replyRef, SIGNAL(readyRead()), this, SLOT(PushDownloadedBytesToFile()));
void PushDownloadedBytesToFile()
{
     _internalBufferBytes.append(_replyRef->readAll());
}

問題是,當大小約為33552950時,我得到了一個bad alloc分配。

我不明白這是什么問題,或者如何調試。

根據您的評論,關於在緩沖區中保留40 MB,我建議使用QByteArray::reserve() API提前預留這么多的內存(更好的方法是QByteArray::reserve() 但是,使用QByteArray ,您必須維護總大小,消耗的大小,當前索引等。

另一種解決方案是將QStringreserve()結合使用 您無需維護細節。 您可以簡單地使用QString::append() ,然后在需要時使用QString::toUtf8()將其轉換為QByteArray

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM