Advertisement
Guest User

Untitled

a guest
May 27th, 2015
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "terminal_user_input.h"
  4.  
  5. typedef struct expense_kind
  6. {
  7. my_string expense_name;
  8. int expense_id;
  9. int expense_cost;
  10. } expense_kind;
  11.  
  12. typedef struct expense_array
  13. {
  14. int size;
  15. expense_kind *data;
  16. } expense_array;
  17.  
  18. void print_expense(struct expense_kind *to_print)
  19. {
  20. printf(to_print->expense_name.str, to_print->expense_id, to_print->expense_cost);
  21. }
  22.  
  23. expense_kind read_expense(const char *prompt)
  24. {
  25. expense_kind result;
  26. printf("%s\n", prompt);
  27.  
  28. result.expense_name = read_string("Enter Name: ");
  29. result.expense_id = read_integer("Enter ID: ");
  30. result.expense_cost = read_integer("Enter Cost: ");
  31.  
  32. return result;
  33. }
  34.  
  35. void add_expense(expense_array *expenses)
  36. {
  37. expense_kind *new_array;
  38. expenses->size++;
  39.  
  40. new_array = (expense_kind *)realloc(expenses->data, sizeof(expense_kind) * expenses->size);
  41. if (new_array)
  42. {
  43. expenses->data = new_array;
  44. expenses->data[expenses->size - 1] = read_expense("Enter New Expense Details");
  45. }
  46. else
  47. {
  48. prinf("Cannot add expense, out of memory!\n");
  49. expenses->size--;
  50. }
  51. }
  52. int main()
  53. {
  54. int i;
  55. expense_array expenses = { 0, NULL};
  56.  
  57. add_expense(&expenses);
  58. for (i = 0; i < expenses.size; i++)
  59. {
  60. print_expense(expenses.data[i]);
  61. }
  62.  
  63. return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement