Copy std::vector from one TTree to another

Well, I think that the address of the vector itself will NOT change, unless you delete it and create another one. What may be changing is the address of the vector’s “internal allocated storage for data”.
If you create a TBranch using the address of the vector itself, there should be no problem at all. Of course, you need to create this vector just once, before you create the TBranch, and you have to make sure that this vector will exist as long as it is used by this TBranch.
However, you do not need to care about what happens to the vector’s “internal allocated storage for data”. You do not need to “reserve(hugenum)” in the beginning at all -> it will automatically “grow”, when needed.
Note: you can std::vector::clear the vector at any moment, e.g. in order to “prepare” it for the next TTree entry -> just do not delete it.
For “std::vector<std::vector >” see [url]Storing 2D vector [--> vector<vector<...> >] into a TTree
For “std::vector<std::vectorstd::string >” see [url]Problem in getting the vector < vector <string> > branch