#include #include #include struct list_node { // what goes here? }; typedef struct list_node node; node *create_list() { node *head, *cur; int i; for(head = NULL, i = 10; i >= 1; i--) { cur = (node *)malloc(sizeof (node)); cur->value = i; cur->next = head; head = cur; } return head; } void print_list(node *head) { while (head) { printf("%d\n", head->value); head = head->next ; } } int main(int argc, char **argv) { node *list; // create two threads: one calls create_list, the other print_list list = create_list(); print_list(list); return 0; }