вложенные структуры и указатели

Я делаю это почти каждый раз, когда возвращаюсь в C-проект. Я получаю segfault при попытке получить доступ к структуре внутри структуры. Допустим, у меня есть следующие (упрощенные) структуры для игры:

struct vector {
    float x;
    float y;
};

struct ship {
    struct vector *position;
};

struct game {
    struct ship *ship;
} game;

И функция для инициализации корабля:

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

Затем вниз в main ():

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

Ответы на вопрос(3)

Ваш ответ на вопрос