1

ボイドポインタがあります

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
}

を指しvpた後vec_A、どのように元に戻すか

 std::vector<boost::shared_ptr<A> > 
4

1 に答える 1

5

アドレスとキャスト:

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

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

これvは、上の行でアドレスを取得したのとまったく同じベクトルへの参照です。

于 2012-09-19T20:12:02.037 に答える