zagnieżdżone struktury i wskaźniki

Podkręcam to za każdym razem, gdy wracam do projektu C. Dostaję segfault podczas próby uzyskania dostępu do struktury w strukturze. Powiedzmy, że mam następujące (uproszczone) struktury gry:

struct vector {
    float x;
    float y;
};

struct ship {
    struct vector *position;
};

struct game {
    struct ship *ship;
} game;

I funkcja inicjowania statku:

static void
create_ship(struct ship *ship)
{
    ship = malloc(sizeof(struct ship));
    ship->position = malloc(sizeof(struct vector));
    ship->position->x = 10.0;
}

Następnie w głównym ():

int main() {
    create_ship(game.ship);
    printf("%f\n", game.ship->position->x); // <-- SEGFAULT
}

questionAnswers(3)

yourAnswerToTheQuestion