「オフセット」をSDL_BlitSurface関数に渡すと、method1が機能し、method2が機能しない理由を理解しようとしています。
利用方法:
int SDL_BlitSurface(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect);
私の考えでは、SDL_BlitSurface 関数は 4 番目の入力引数として SDL_Rect* を要求するため、どちらも機能するはずです。どちらの場合も、関数に SDL_Rect* を渡しました。ただし、メソッド 2 では、「ハンドルされていない例外アクセス違反の書き込み場所エラー」が発生します。助けてください!
方法 1:
SDL_Rect offset;
offset.x = 1;
SDL_BlitSurface( source, NULL, destination, &offset );
方法 2:
SDL_Rect* offset = NULL;
offset->x = 1;
SDL_BlitSurface( source, NULL, destination, offset );
(Lazy Foo のチュートリアル レッスン 2 のコード)