Я пытаюсь использовать интеллектуальные указатели, такие как auto_ptr, shared_ptr. Однако я не знаю, как использовать его в этой ситуации.Умный указатель C++ для типа без объекта?
CvMemStorage *storage = cvCreateMemStorage();
... use the pointer ...
cvReleaseMemStorage(&storage);
Я не уверен, но я думаю, что переменная для хранения просто malloc'ed памяти, а не C++ класс объекта. Есть ли способ использовать интеллектуальные указатели для переменной хранения?
спасибо.
Невозможно сообщить, как распределена память, не видя источника 'cvCreateMemStorage'. Это может быть 'malloc'ed, это может быть' new'ed, это может быть не что-либо, возможно, функция 'cvCreateMemStorage' всегда возвращает' NULL'. –
Вы уверены, что 'cvReleaseMemStorage' использует' CvMemStorage **' вместо 'CvMemStorage *'? Это кажется странным. – ereOn
Странно, но [он делает] (http://opencv.willowgarage.com/documentation/dynamic_structures.html#releasememstorage). –