Нет памяти, выделенной для члена vertex
вашего node
. Либо выделите для него память так:
nodehead->v = malloc(sizeof(vertex));
перед назначением члена i
, или, возможно, даже лучше, измените ваш структурный узел, чтобы он уже включал полный экземпляр вершины
typedef struct Node {
vertex v;
struct Node *next;
} node;
и доступ мне нравится так:
nodehead->v.i = 10;
Последний метод имеет то преимущество, что вам не нужно управлять памятью для двух объектов, а только для самого узла. OTOH, если ваши вершины используются независимо от связанного списка, этот метод может не подходить; это зависит от контекста.