我想知道爲什麼method1工作,而method2不工作,當我傳遞「偏移」到SDL_BlitSurface函數。傳遞指針到SDL函數
用法:
int SDL_BlitSurface(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect);
在我看來,兩者都應該工作,因爲SDL_BlitSurface功能要求SDL_Rect *作爲第4個輸入參數。並且在這兩種情況下,我都已將SDL_Rect *傳遞給該函數。但方法2會產生「未處理的異常訪問衝突寫入位置錯誤」。請幫忙!
方法一:
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);
(代碼從懶惰Foo的指導課程2)
感謝您的回覆 – 2013-03-23 12:00:34