I have spent a lot of time to search reason of errors.
Below is a piece of my c++ program which is using vector to store data. I have seen that when vector increase self size, then all references are change. So save references to push_back() object by back() object is stupid and does not make sense.
class Test{
    public :
        int wiek;
};
int main(int argc, char **argv)
{
    std::vector<Test> v;
    std::vector<Test*> vv;
    for (int i = 0; i < 12; i++) {
        Test t;
        t.wiek = 10;
        v.push_back(t);
        vv.push_back(&v.back());
    }
    Test& m = v.back();
    for (int i = 0; i < 24; i++) {
        Test t;
        t.wiek = 123;
        v.push_back(t);
        vv.push_back(&v.back());
    }
    for (int i = 0; i < 36; i++) {
        std::cout<<"vv.at(i)->wiek : "<<vv.at(i)->wiek<<"\n";
    }
    // vv.at(i)->wiek : 1619638984
    // vv.at(i)->wiek : 167838876
    // vv.at(i)->wiek : 167838896
    // vv.at(i)->wiek : 167838900
    // vv.at(i)->wiek : 167839152
    // vv.at(i)->wiek : 167839156
    // vv.at(i)->wiek : 167839160
    // vv.at(i)->wiek : 167839164
    // vv.at(i)->wiek : 167838872
    // vv.at(i)->wiek : 167838876
    // vv.at(i)->wiek : 167838880
    // vv.at(i)->wiek : 167838884
    // vv.at(i)->wiek : 167838888
    // vv.at(i)->wiek : 167838892
    // vv.at(i)->wiek : 167838896
    // vv.at(i)->wiek : 167838900
    // vv.at(i)->wiek : 123
    // vv.at(i)->wiek : 123
    // vv.at(i)->wiek : 123
    // vv.at(i)->wiek : 123
    // vv.at(i)->wiek : 123
    // vv.at(i)->wiek : 123
    // vv.at(i)->wiek : 123
    // vv.at(i)->wiek : 123
    // vv.at(i)->wiek : 123
    // vv.at(i)->wiek : 123
    // ...
    //
    return 1;
}
Do I have right?
 
     
     
    