1 #include <stdio.h> 2 #include <stdlib.h> 3 4 typedef struct elem_ { 5 int val; 6 struct elem_* next; 7 } elem; 8 sum(elem * linked_list)9int sum(elem* linked_list) 10 { 11 elem* p = linked_list; 12 int n = 0; 13 14 while (p != NULL) { 15 n += p->val; 16 p = p->next; 17 } 18 19 return n; 20 } 21 alloc()22elem* alloc() 23 { 24 elem* elem_0 = (elem*)malloc(sizeof(elem)); 25 elem_0->val = 0; 26 elem_0->next = NULL; 27 28 return elem_0; 29 } 30 main()31int main() 32 { 33 elem* linked_list = alloc(); 34 35 // Allocate some elements 36 elem* elem_0 = alloc(); 37 elem* elem_1 = alloc(); 38 elem* elem_2 = alloc(); 39 40 elem_0->val = 1; 41 elem_1->val = 2; 42 elem_2->val = 3; 43 44 // Link them together! 45 linked_list->next = elem_0; 46 elem_0->next = elem_1; 47 elem_1->next = elem_2; 48 49 printf("The sum is %d.\n", sum(linked_list)); 50 } 51