Advertisement
Guest User

Untitled

a guest
Nov 26th, 2015
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <gc/gc.h>
  4.  
  5. struct node {
  6. int i;
  7. };
  8.  
  9. struct node *new_node(int i)
  10. {
  11. struct node *node = GC_malloc(sizeof(struct node));
  12. node->i = i;
  13. return node;
  14. }
  15.  
  16. void print_nodes(struct node **nodes, int n)
  17. {
  18. fprintf(stderr, "[");
  19. if (n > 0) {
  20. fprintf(stderr, "%d", nodes[0]->i);
  21. for (int i = 1; i < n; i++) {
  22. fprintf(stderr, ", %d", nodes[i]->i);
  23. }
  24. }
  25. fprintf(stderr, "]\n");
  26. }
  27.  
  28. int main(void)
  29. {
  30. GC_init();
  31.  
  32. struct node **nodes = GC_malloc(3 * sizeof(struct node *));
  33. nodes[0] = new_node(1);
  34. nodes[1] = new_node(2);
  35. nodes[2] = new_node(3);
  36. print_nodes(nodes, 3);
  37.  
  38. struct node **a = nodes + 0;
  39. struct node **b = nodes + 1;
  40. struct node **c = nodes + 2;
  41. printf("a: %d\n", (*a)->i);
  42. printf("b: %d\n", (*b)->i);
  43. printf("c: %d\n", (*c)->i);
  44.  
  45. nodes[0] = new_node(4);
  46. nodes[1] = new_node(5);
  47. nodes[2] = new_node(6);
  48. print_nodes(nodes, 3);
  49.  
  50. printf("a: %d\n", (*a)->i);
  51. printf("b: %d\n", (*b)->i);
  52. printf("c: %d\n", (*c)->i);
  53.  
  54. return EXIT_SUCCESS;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement