
On Sep 9, 2012 8:34 PM, "abhishek goswami" <zeal_goswami@yahoo.com> wrote:
I am looking for a project which is converting c malloc/realloc to
shared_ptr. During my Analysis, I found the issue
Can anyone provide me some input how to fix below issue
typedef boost::shared_ptr<Employee_t> srdpointer;
srdpointer
ptr((Employee_t*)malloc(sizeof(Employee_t)),std::ptr_fun(free)); This is only valid if Employee_t is a POD type. Otherwise you also have to call its destructor.
How can I achieve the similar functionality using shared ptr as shown in above code
void allocateBlocks(shared_ptr<int>& ptr, unsigned int& cnt) { ptr.reset((int*)malloc(sizeof(int)*10), &free); // also check ptr for NULL here cnt = 10; } int main() { unsigned int cnt = 0; shared_ptr<int> ptr; allocateBlocks(ptr, cnt); } You can also return ptr from the function, which will simplify usage.