簡體   English   中英

C ++ Boost庫-將共享指針傳遞給函數

[英]C++ Boost library - passing Shared pointer to a function

假設可以如下創建共享指針

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實現類似的功能。

你的意思是這樣嗎?

void allocateBlocks( boost::shared_ptr<int>& out, int& count )
{
  out.reset(new int[...]);
  count = 10;
}

PS:我建議看看boost :: shared_array <>和朋友們,他們只是動態地分配數組。

PS:std :: vector <>也可以嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM