不建议这么问问题
void LoadPic(const char * surfacedir ,SDL_Surface * surfacepic)
{
surfacetmp[0]=SDL_LoadBMP(surfacedir);
if(surfacetmp[0] == NULL){Diary("读取图片错误");Quit();}
surfacepic = SDL_DisplayFormat(surfacetmp[0]);
if(surfacepic == NULL){Diary("转化图片错误");Quit();}
SDL_FreeSurface(surfacetmp[0]);
}
问题在于你没有修改全局变量startpic的内容,这里使用的是值传递,函数执行完之后修改的是局部变量surfacepic而没有修改startpic,建议复习一下值传递与引用传递还有地址传递。