No se puede hacer list->next = node porqué node es solo un puntero y no tiene dato.
En la práctica es esto:
Cuándo haces node = list ya creas la relación. node es list.
En la práctica es esto:
Código (c) [Seleccionar]
int* pint = malloc((sizeof(int));
int* node;
node = pint;
Cuándo haces node = list ya creas la relación. node es list.