我只是尝试了一个简单的示例,并且在为 SDL_Texture 指针使用数组时没有问题,所以我认为这里未显示的代码部分有问题。
您究竟是如何以及在何处定义 t0 和 t1 变量的?如果您在初始化数组之前没有分配它们,如上所示,则数组中的指针将指向任意值(指向未初始化的指针 t0 和 t1 指向的任何一个),之后更改后者不会更改存储在数组中的副本. (这意味着您在使用数组时没有在调用 SDL_RenderCopy 时使用有效的 SDL_Texture*)。
我的测试代码的相关部分是这样的:
SDL_Texture *tex0=LoadImage("test.bmp",renderer), *tex1=LoadImage("test1.bmp",renderer);
SDL_Texture *arr[]={tex0,tex1};
SDL_Rect dest0, dest1;
dest0.x=0;
dest0.y=0;
dest1.x=200;
dest1.y=200;
SDL_QueryTexture(tex0, NULL, NULL, &dest0.w, &dest0.h);
SDL_QueryTexture(tex1, NULL, NULL, &dest1.w, &dest1.h);
SDL_RenderClear(renderer);
SDL_RenderCopy(renderer,tex0,NULL,&dest0);
SDL_RenderCopy(renderer,tex1,NULL,&dest1);
//SDL_RenderCopy(renderer,arr[0],NULL,&dest0);
//SDL_RenderCopy(renderer,arr[1],NULL,&dest1);
SDL_RenderPresent(renderer);
SDL_Delay(2000);
对 SDL_RenderCopy 的注释和未注释调用都产生了相同的结果。当然,这段代码绝不是理想的,只是为了测试手头的问题。
我很抱歉无法给出明确的答案,希望我能有所帮助。