私はゲームに取り組んでいます。ある場所では、セグメンテーション違反が発生することがありますが、それ以外の場合は、コードが正しく機能します。(セグメンテーション違反を受け取った後)ゲームを再度実行すると、(コードを変更せずに)回復し、正常に実行されます。しかし、しばらくすると、これが再び起こります。
GDBを使ってデバッグしてみました。次の情報を入手しました。
- 関数呼び出し:func(&s.x)があります。ここで、sは構造体であり、xはint型のメンバーです。アドレス(&s.x)は0xb3456721です
- 関数funcでは、引数で受け取った値は0xbです。
- プログラムがクラッシュし、0xbのメモリにアクセスできないと表示されます。GDBを使用して変数を出力すると、メモリにアクセスできなくなります。
何かアイデアなぜこれが起こるのでしょうか?