In Qt 4 i have I have the following array:
QSharedPointer<unsigned char> encrypted(new unsigned char[RSA_size(publickey)]);
How can I combine the two allocations in one with the new Qt 5 create function?
QSharedPointer<T> QSharedPointer::create()
Your first example is wrong and will not only leak memory, but cause UB. When you define a
QSharedPointer<unsigned char>
you are defining a smart pointer for a single element, not an array of elements, thereforedelete
will be called, notdelete[]
.Change it to:
That is: you have to provide a custom deleter for the pointer.
Finally, the
QSharedPointer::create
function is supposed to be used only for one element, not an array of elements and it can be used with: