c++ - 临时住址?

标签 c++ qt push qtimer

我尝试使用QT的Push Mode和QTimerEvent来实现一个timerEvent。我的代码返回以下错误 “临时地址”。怎么了?任何帮助,将不胜感激。 这是代码

void Engine::timerEvent(QTimerEvent *)
{
m_audioIODevice->open(QIODevice::ReadOnly);

const qint64 nBytesReady = m_auidioInput->bytesReady();
m_DataBufer->Push(&m_audioIODevice->read(nBytesReady));

emit BuferChanged(m_DataBufer->GetByteArray());
 }

最佳答案

这个声明

m_DataBufer->Push(&m_audioIODevice->read(nBytesReady));

错了。函数 m_audioIODevice->read(nBytesReady) 返回一个临时对象,正如编译器所说,您可能无法获得右值临时对象的地址。使用一些中间变量来保存函数调用的结果。

此外,该语句似乎通常是无效的,因为您正试图推送将在语句执行结束时删除的临时对象的地址。

关于c++ - 临时住址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24560339/

相关文章:

c++ - 是否可以仅通过在 C++ 中存储分配的指针地址来分析内存?

c++ - 如何在 QListView 中对图像应用图形效果?

git - git push 是慢了还是出了什么问题?

ssh:连接到主机 bitbucket.org 端口 22:连接超时致命

c++ - API 为 IP 返回 "incorrect"值,但如果您添加 256 或将负数输入 uchar,它就可以工作。发生了什么?

c++ - 是否有任何常规模式可以确定将...放在模板中的位置?

linux - Qt版本无效

qt - QML:如何锚定现有边距

notifications - 解析 API : batch push notifications

c++ - Qt 等待用户选择 QGraphicsScene 中的项目