6
我想知道如何連接SDL_Surface *和shared_ptr?
在刪除SDL_Surface
之前,我需要撥打SDL_FreeSurface(SDL_Surface*)
。如何在shared_ptr中「修改刪除過程」?將SDL_Surface連接到shared_ptr
我想知道如何連接SDL_Surface *和shared_ptr?
在刪除SDL_Surface
之前,我需要撥打SDL_FreeSurface(SDL_Surface*)
。如何在shared_ptr中「修改刪除過程」?將SDL_Surface連接到shared_ptr
只是傳遞SDL_FreeSurface的構造器:
std::shared_ptr<SDL_Surface> shared_surf(SDL_LoadBMP("foo.bmp"), SDL_FreeSurface);
只要確保你不會與SDL_SetVideoMode
或SDL_GetVideoSurface
返回的指針做到這一點。
爲什麼你不應該這樣做呢? (SDL_SetVideoMode等)。 – user1511417 2013-05-21 11:35:45
@ user1511417:根據[文檔](http://www.libsdl.org/docs/html/sdlsetvideomode.html)。 *「返回的表面被SDL_Quit()釋放,並且應該被調用者釋放。」* – 2013-05-21 20:43:22