共有ポインタを次のように作成できると仮定します
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
上記のコードに示すように 、どうすれば同様の機能を実現できますか。