0
我有一个使用文件路径字符串列表初始化的结构。但是,如果我尝试在由这些字符串创建的SDL_Surfaces上调用SDL_DisplayFormat,则应用程序将无法启动。它不会崩溃,它不会像平常一样生成stdout.txt或stderr.txt,它只是无法启动。编译器不提供任何错误或警告。这是我的代码:SDL_DisplayFormat使用initializer_list崩溃
struct Object {
std::vector<SDL_Surface*> surfaceVector;
Object(initializer_list<std::string> init) {
for (auto i : init) {
SDL_Surface* loadSurface = SDL_LoadBMP(i.c_str());
surfaceVector.push_back(SDL_DisplayFormat(loadSurface););
SDL_FreeSurface(loadSurface);
}
}
}
如果我不叫SDL_DisplayFormat,我可以访问并在位块传输的surfaceVector表面像正常的,所以他们似乎是正确加载。但是,我希望surfaceVector中的曲面处于显示格式。
您是否检查过“SDL_DisplayFormat(loadSurface)”的返回值是否为空? –
由于应用程序不会真正开始,所以我无法打印或做任何类似的事情。但是,如果我删除SDL_DisplaySurface()并添加一些代码,如if(loadSurface == NULL)cout <<“null”else cout <<“not null”;那么它仍然运行,但不会打印任何内容,并且stdout.txt不会生成,无论我在别处有多少个cout语句。所以我可能在别的地方做了一些奇怪的事情 – Exudes