//in header file(in User class):
int howManyOpponents =0;
User** userArray; //(which is initialized to userArray = new User*[5] in the constructor)

//in class file:
void User::addWin(User* aUser)
{
    userArray[howManyOpponents] =aUser;
    howManyOpponents++;
}

//in main file
int maximumUser = 20;
User* userList[maximumUser];
(*userList[i]).addWin(userList[j]);


代码时钟停止工作,我已将问题追溯到User :: addWin并尝试了许多不同的引用或指向设置,但无法处理。可能有一个简单的错误。
谢谢。

最佳答案

User* userList[maximumUser];


创建maximumUser User指针的数组。没有构造User的实际实例。

然后,您尝试使用以下未初始化的指针之一调用方法,从而导致崩溃:

(*userList[i]).addWin(userList[j]);


要修复,请创建一个实际的User实例数组(假定User的构造函数不需要参数):

User userList[maximumUser];
userList[i].addWin(userList[j]);

关于c++ - 代码块c++停止工作可能是由于引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41451452/

10-14 08:26