内存错误c ++ private int

时间:2014-03-13 16:49:38

标签: c++ class memory

我正在做一个项目,我必须使用名为numberOfMatches的私有int。 这是 player.h 中的Player类中的代码:

    int getnumberOfMatches(){ return numberOfMatches; }
    void setnumberOfMatches(int numb){ numberOfMatches = numb; }

private:
    int numberOfMatches;

当我尝试在numberOfMatches上设置数字时,其值不会改变。

int amount = 10;
Player* team = new Player(amount);
for (int x = 0; x < 10; x++)
{
    int matches = x;
    team[x].setnumberOfMatches(matches);
}

但如果我使用team[0].setNumberOfMatches(matches);,则会更改该值。 当我添加断点时,我看到在团队[x]的情况下,它说:

"<Unable to read memory>" on numberOfMatches. 

使用team[0].set()时不是这种情况。

任何人都知道可能出现的问题?

1 个答案:

答案 0 :(得分:1)

此代码

Player* team = new Player(amount);

分配一个播放器对象。

此代码访问从未分配的Player对象(当x大于零时):

for (int x = 0; x < 10; x++)
{
 int matches = x;
 team[x].setnumberOfMatches(matches);
}