【发布时间】:2011-10-24 12:40:22
【问题描述】:
我有以下代码:
QPair<QSharedPointer<unsigned int>, int> someclass::somefunction() {
int siz = data_size();
QSharedPointer<unsigned int> buffer(new unsigned int[siz]);
// Fill the buffer...
return qMakePair(buffer, siz);
}
在某些时候,此函数返回的QSharedPointer 将超出范围,并且在构造函数中设置的指针将被释放。使用 valgrind 3.6.1,我收到“不匹配的 free()/delete/delete[]”错误。我使用 QSharedPointer 有什么问题吗?还是我只能忍受这个 valgrind 警告?
【问题讨论】:
标签: c++ qt smart-pointers qsharedpointer