У меня есть следующий код:
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?