Предполагая, что общий указатель может быть создан следующим образом
typedef boost::shared_ptr<Employee_t> srdpointer;
srdpointer ptr((Employee_t*)malloc(sizeof(Employee_t)),std::ptr_fun(free));
Мне нужно передать общий указатель, который будет выделять память, указанную указателем ptr. Что-то вроде этого.
void allocateBlocks(int **ptr, int *cnt)
{
*ptr = (int*)malloc(sizeof(int) * 10);
*cnt = 10;
/*do something*/
}
int main()
{
int *p = NULL;
int count = 0;
locateBlocks(&p, &count);
/*do something*/
free(p);
}
Как я могу добиться аналогичной функциональности, используя shared_ptr
, как показано в приведенном выше коде.
malloc
, а неnew
? - person Default   schedule 05.09.2012reset()
ing экземплярshared_ptr
с новым указателем не меняет другие экземплярыshared_ptr
(они будут указывать на старый объект)? - person Greg   schedule 05.09.2012