如何在QT中从QByteArray和QByte Stream释放内存

Eag*_*Eye 5 c++ memory qt

我想知道如何在这个片段代码中特别关注QT的QByteArray和QByteStream:

  QByteArray DicResourceByteArray;
  QDataStream out(&DicResourceByteArray, QIODevice::WriteOnly);

  QString encoded;
  out.writeRawData(DicBlock.data + pos, DicBlock.length - pos);


  encoded = QString(DicResourceByteArray.toBase64());
Run Code Online (Sandbox Code Playgroud)

Rai*_*aiv 5

根据RAII概念,一旦超出范围,所有内容都将自动发布.如果你想明确释放内存,请调用类似clear()但不需要的内容 - 所有清理都将在QByteArray析构函数中完成.与QDataStream的情况是一样的......还要注意,这是非常优选的编码风格 - 当你创建自己的类时尝试做同样的事情.管理类似C的指针可以省去很多麻烦.