我有一个带有以下签名的函数
bool TraceData::Read(const QSharedPointer<QDataStream>& dataStream, const int formatCode
, const int numberOfSamples)
它被调用时 dataStream 位于正确的位置。 现在我需要从数据流中提取浮点数,但遇到堆损坏异常,我不知道为什么。
我正在使用循环来实现此目的
for (auto index = 0; index < numberOfSamples; ++index)
{
QByteArray buffer{};
auto cc = dataStream->readRawData(buffer.data(), sizeof(float));
auto ff = qFromBigEndian<float>(buffer.data());
}
现在,当我使用调试器单步执行时,“ff”被设置为预期值,但是当我跨过该行时,我得到了这个 在此输入图片描述
我无法找出是什么原因造成的
按照rafix07的建议我只是忘记初始化缓冲区
buffer.reserve(sizeof(float));