ここで私が見つけることができるアクセス違反の場所の質問をすべて読んだことがありますが、多分私は何かが不足していますが、別のエラーが発生しているようです。私はすべての私の指針を(私が言うことができる限り)初期化しました。SDLアクセス違反の書き込み場所0x02a251c8
void putpixel(SDL_Surface* surface, int x, int y, Uint32 pixel)
{
int k = GetWidth(surface);
//Convert the pixels to 32 bit
Uint32 *pixels = (Uint32 *)surface->pixels;
//Set the pixel
pixels[ (y * surface->w) + x ] = pixel; //This is the line the debugger points to.
}
プログラムはマンデルブロセットを表示します。これは、ピクセルデータにアクセスするために使用していた関数です。私が最初にプログラムを書いたとき、それはint main()内にあり、この関数を使ってうまくいきました。私はこれをSDLとポインタを使った演習として書こうと思ったので、それを分割してMandelbrotを独自のクラスにしてOOPについて少し学びました。一度私はそれを分割しただけで、私はこれらの問題を抱え始めた。明白な何かがありますか?私はコードの残りの部分を投稿して喜んで、私はちょうど無関係なコードで皆さんを溢れさせたくありません。問題を追跡すると、セットを描画するための実際のコードのputpixel関数が指し示されます。これは意味があります。問題はそこで起きていますか?
EDIT:スクラッチ。私はいくつかのエラー処理を行い、私は間違いなく表面を正しくロックしています。
私の編集を参照してください。私は表面を正しく固定していると思うが、私は愚かな間違いをしているように感じる。 –