C++ &引用;“连接”;SDL_曲面到共享_ptr

C++ &引用;“连接”;SDL_曲面到共享_ptr,c++,sdl,shared-ptr,C++,Sdl,Shared Ptr,我想知道如何将SDL_Surface*与共享_ptr连接起来? 我需要调用SDL\u FreeSurface(SDL\u Surface*)才能删除SDL\u Surface。如何在shared_ptr中“修改删除过程”?只需将SDL_FreeSurface传递给构造函数: std::shared_ptr<SDL_Surface> shared_surf(SDL_LoadBMP("foo.bmp"), SDL_FreeSurface); std::shared_ptr shared

我想知道如何将SDL_Surface*与共享_ptr连接起来?

我需要调用
SDL\u FreeSurface(SDL\u Surface*)
才能删除
SDL\u Surface
。如何在shared_ptr中“修改删除过程”?

只需将SDL_FreeSurface传递给构造函数:

std::shared_ptr<SDL_Surface> shared_surf(SDL_LoadBMP("foo.bmp"), SDL_FreeSurface);
std::shared_ptr shared_surf(SDL_LoadBMP(“foo.bmp”)、SDL_FreeSurface);

只需确保您没有使用由
SDL\u SetVideoMode
SDL\u GetVideoSurface
返回的指针执行此操作

为什么不使用这些指针执行此操作?(SDL_SetVideoMode等)@user1511417:根据。“返回的曲面由SDL_Quit()释放,调用方不应释放它。”