c++应用双层指针数组读取txt文档时因为地址问题导致数据全变成最后一行的数据

这是其中一个片段,导致了date数组中的数据全是User最后的地址的数据,如果想保存每次User的数据该怎么做?感谢解答


user** date = new user*[nume];
    user*User= new user(1, "zhangsan", "password", 100, 1);
    void getdate() {//获取用户信息保存到数组
        fstream ofs;
        getnume();
        ofs.open(file, ios::in);
        for (int i = 0; i < nume; i++) {
            ofs >> User->id
                >> User->Name
                >> User->Password
                >> User->money
                >> User->State;
            date[i] = User;
            cout << date[i]->id<<endl;
        }
        cout << date[0]->id << endl;
        cout << date[1]->id << endl;
        cout << date[2]->id << endl;
        system("pause");
        ofs.close();
    }

运行中数据的变化结果

img


运行完后文档的结果,保存文件的函数没有问题

img

data是指针数组,每个date[i] = User;中的User都要new出来。User一直指向同一片内存区域,你一直操作的就是这一片区域了。