2012-09-19 71 views
1

我有一個空指針void指針到升壓的矢量共享指針

void *vp; 

我想將它指向vec_A其中vec_A作爲引用傳遞的函數的內部,即

some_function(std::vector<boost::shared_ptr<A> >& vec_A) 
{ 
    void *vp; 
    //now i want vp to point to vec_A 
} 

並在我指vpvec_A後,如何將其取回爲

std::vector<boost::shared_ptr<A> > 
+3

'void * vp = static_cast (&vec_A);'但是爲什麼哦爲什麼? – jrok

+2

@jrok參數爲一個線程啓動過程將是一個很好的理由。 – japreiss

回答

5

地址,並鑄:

void * vp = &vec_A; // address-of 

std::vector< boost::shared_ptr<A> > & v = 
    *static_cast< std::vector< boost::shared_ptr<A> >* >(vp); 

現在v是非常相同的向量,其地址,你參加了線以上的參考。