SDL_Surface* Surface, why can't you just use SDL_Surface. Isn't * a pointer? I just don't understand why you need the pointer and you can't just use SDL_Surface.
SDL_Surface* is exactly the same as SDL_Surface * Surface and exactly the same as SDL_Surface *Surface