Advertisement
Guest User

Untitled

a guest
Jul 16th, 2017
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.02 KB | None | 0 0
  1. // MAIN.C____________________________________________________________
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include "myheader.h"
  6.  
  7. int main(int argc, char **argv) {
  8.     Array arr = init_arr(5);
  9.     for (int i = 0; i < arr.length; i++) {
  10.         arr.n[i] = i;
  11.     }
  12.     print_arr(arr); // prints 0 1 2 3 4
  13.     add_to_arr(&arr, 228);
  14.     print_arr(arr); // prints 0 1 2 3 4 228
  15.     remove_from_arr(&arr, 0);
  16.     print_arr(arr); // prints 1 2 3 4 228
  17.     free_arr(arr);
  18.     // ? free_arr_IDK(arr.n);
  19.     // ? free(arr.n);
  20.     print_arr(arr); // ??? prints 1 2 3 4 228
  21. }
  22.  
  23. // FUNC.C______________________________________________________________
  24. #include <stdio.h>
  25. #include <stdlib.h>
  26. #include "myheader.h"
  27.  
  28. Array init_arr(int size) {
  29.     int i;
  30.     Array a;
  31.     a.length = 0;
  32.     a.n = (int*) malloc(size * sizeof(int));
  33.     for (i = 0; i < size; i++) {
  34.         a.n[i] = 0;
  35.         a.length++;
  36.     }
  37.     return a;
  38. }
  39.  
  40. void print_arr(Array a) {
  41.     int i;
  42.     printf("Array size: %d {", a.length);
  43.     for (i = 0; i < a.length; i++) {
  44.         printf("%d ", a.n[i]);
  45.     } printf("}\n");
  46. }
  47.  
  48. void free_arr(Array a) {
  49.     free (a.n);
  50. }
  51.  
  52. void free_arr_IDK(Array *a) {
  53.     free (a->n);
  54. }
  55.  
  56. void add_to_arr(Array *arr, int n) {
  57.     arr->length++;
  58.     arr->n = (int*) realloc(arr->n, arr->length * sizeof(int));
  59.     arr->n[arr->length-1] = n;
  60.     printf("-- added <%d> to end of array\n", n);
  61. }
  62.  
  63. void remove_from_arr(Array *arr, int id) {
  64.     int i, *temp;
  65.     temp = (int*) malloc(arr->length * sizeof(int));
  66.     for (i = 0; i < arr->length; i++) {
  67.         temp[i] = arr->n[i];
  68.     }
  69.     arr->length--;
  70.     arr->n = (int*) malloc (arr->length * sizeof(int));
  71.     for (i = 0; i < id; i++) {
  72.         arr->n[i] = temp[i];
  73.     }
  74.     for (i = id; i < arr->length; i++) {
  75.         arr->n[i] = temp[i+1];
  76.     }
  77.     free(temp);
  78.     printf("-- removed element #%d\n", id);
  79. }
  80.  
  81. // MYHEADER.H _____________________________________________________________
  82. typedef struct Array {
  83.     int length;
  84.     int *n;
  85. } Array;
  86.  
  87. Array init_arr(int);
  88. void print_arr(Array);
  89. void free_arr(Array);
  90. void free_arr_IDK(Array*);
  91. void add_to_arr(Array*, int);
  92. void remove_from_arr(Array*, int);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement