访问冲突写入位置0xaaaaaaa

时间:2012-05-17 09:55:35

标签: c++

这是Score.h文件中我当前的分数代码: -

class Score
{

protected:
long m_Scores;
long m_HighScore;
//private:

public:
Score();
~Score();
void Init();
void Update(float deltaMS);
void Render();
void Release();
void SetScore(long sc){
    m_Scores=sc;
}

long GetScore(){
    return m_Scores;
}
void SetHighScore(long sc){
    m_HighScore=sc;
}

long GetHighScore(){
    return m_HighScore;
}
void AddScore(int add);

};

每当我尝试访问类本身的m_Scores时,我都会收到以下错误。

Access violation writing location 0xaaaaaaaa.

由于这个原因,无法运行SetScore()方法。 我知道我在做一些愚蠢的事,但无法理解。你能帮帮我吗?

2 个答案:

答案 0 :(得分:2)

您显然是通过指针访问该类,而pointer's位置的内存的值为0xaaaaaaaa。这看起来很像未初始化的内存所具有的值。

所以我猜你有一个Score *变量,你没有填写什么。你需要做一个

  • 将其更改为Score,并使用直接成员访问(.)而不是指针间接(->
  • 使用var = new Score();初始化变量,然后将其与free var;
  • 一起释放

答案 1 :(得分:1)

这是因为您尝试SetScore()的Score对象已经过时,已经过时。注意它的寿命。