..//include/thrust/detail/internal_functional.h(322): error: no suitable conversion function from "Fragment" to "Fragment *" e xists

I’m trying to implement the following C++ function on CUDA Thrust:

void setFragment( vector< Atom * > &vStruct, vector< Fragment * > &vFragment ) {
    Fragment *frag;

    int n = vStruct.size();

    for( int i = 0 ; i < n-2 ; i++ ){
        frag = new Fragment();
        frag->index[0] = i;
        frag->index[1] = i+1;   
        frag->index[2] = i+2;   

        vFragment.push_back( frag );    
    }
}

To do so, I created a functor to set indices of each Fragment vector in the following way:

struct setFragmentFunctor
{
    __device__ __host__
    Fragment operator() (const int &i) const { 
        Fragment * f; 
        (*f).index[0] = i; (*f).index[1] = i+1; (*f).index[2] = i+2; 
        return *f;
    }
};

void setFragment( vector< Atom * > &vStruct, vector< Fragment * > &vFragment ){

    const int N = vStruct.size() -2 ;
    thrust::device_vector<Fragment *> dvFragment(N);
    thrust::tabulate(dvFragment.begin(), dvFragment.end(), setFragmentFunctor());
	vFragment.reserve(N);
    thrust::copy(dvFragment.begin(), dvFragment.end(), vFragment.begin());

 /*   for(auto p : dvFragment) {
        Fragment f = p;
        std::cout << f.index[0] << " " << f.index[1] << " " << f.index[2] << std::endl;
    }
	*/

 
}

However, I’m getting the following error:

…//include/thrust/detail/internal_functional.h(322): error: no suitable conversion function from “Fragment” to “Fragment *” exists