これはSDLの問題ですが、私が遭遇した問題はSDLに関連するものではなく、C++/ポインター全般に関連していると強く感じています。
簡単に言うと、このコードは機能しません(私が実際に行ったことを示すように編集されています)。
player->picture = IMG_Load("player");
SDL_BlitSurface(player->picture, NULL, screen, &pictureLocation);
画面に何も表示されません。ただし、このようにすると、次のように機能します。
SDL_Surface* picture = IMG_Load("player.png");
player->picture = picture;
SDL_BlitSurface(player->picture, NULL, screen, &pictureLocation);
私は小さな男がうまく見えます。
本当の問題は、Player::pictureを直接インスタンス化できないことです。やってみても
picture = IMG_Load("player.png")
player.cppでは、nullpointerになってしまいます。