当我将“偏移”传递给 SDL_BlitSurface 函数时,我试图理解为什么方法 1 有效,而方法 2 无效。
用法:
int SDL_BlitSurface(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect);
在我看来,两者都应该工作,因为 SDL_BlitSurface 函数要求 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 课的代码)