0

これは、ファイル内のクラス Score の現在のコード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()メソッドを実行できません。私は愚かなことをしていることを知っていますが、それを理解できませんでした。助けてください。

4

2 に答える 2

2

ポインタを介してクラスにアクセスしているようで、そのpointer's場所のメモリの値はです0xaaaaaaaa。これは、初期化されていないメモリが持つ値によく似ています。

だから私はあなたがScore *何かで埋めていない変数を持っていると思います。あなたは次のいずれかを行う必要があります

  • に変更し、ポインタの間接参照()の代わりに直接メンバーアクセス()を使用Scoreします.->
  • で変数を初期化しvar = new Score();、後でそれを解放しますfree var;
于 2012-05-17T10:18:27.950 に答える
1

これは、ScoreSetScore() しようとするオブジェクトが既に古く、破壊されているために発生します。その寿命に注意してください。

于 2012-05-17T10:02:39.630 に答える