Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // MAIN.C____________________________________________________________
- #include <stdio.h>
- #include <stdlib.h>
- #include "myheader.h"
- int main(int argc, char **argv) {
- Array arr = init_arr(5);
- for (int i = 0; i < arr.length; i++) {
- arr.n[i] = i;
- }
- print_arr(arr); // prints 0 1 2 3 4
- add_to_arr(&arr, 228);
- print_arr(arr); // prints 0 1 2 3 4 228
- remove_from_arr(&arr, 0);
- print_arr(arr); // prints 1 2 3 4 228
- free_arr(arr);
- // ? free_arr_IDK(arr.n);
- // ? free(arr.n);
- print_arr(arr); // ??? prints 1 2 3 4 228
- }
- // FUNC.C______________________________________________________________
- #include <stdio.h>
- #include <stdlib.h>
- #include "myheader.h"
- Array init_arr(int size) {
- int i;
- Array a;
- a.length = 0;
- a.n = (int*) malloc(size * sizeof(int));
- for (i = 0; i < size; i++) {
- a.n[i] = 0;
- a.length++;
- }
- return a;
- }
- void print_arr(Array a) {
- int i;
- printf("Array size: %d {", a.length);
- for (i = 0; i < a.length; i++) {
- printf("%d ", a.n[i]);
- } printf("}\n");
- }
- void free_arr(Array a) {
- free (a.n);
- }
- void free_arr_IDK(Array *a) {
- free (a->n);
- }
- void add_to_arr(Array *arr, int n) {
- arr->length++;
- arr->n = (int*) realloc(arr->n, arr->length * sizeof(int));
- arr->n[arr->length-1] = n;
- printf("-- added <%d> to end of array\n", n);
- }
- void remove_from_arr(Array *arr, int id) {
- int i, *temp;
- temp = (int*) malloc(arr->length * sizeof(int));
- for (i = 0; i < arr->length; i++) {
- temp[i] = arr->n[i];
- }
- arr->length--;
- arr->n = (int*) malloc (arr->length * sizeof(int));
- for (i = 0; i < id; i++) {
- arr->n[i] = temp[i];
- }
- for (i = id; i < arr->length; i++) {
- arr->n[i] = temp[i+1];
- }
- free(temp);
- printf("-- removed element #%d\n", id);
- }
- // MYHEADER.H _____________________________________________________________
- typedef struct Array {
- int length;
- int *n;
- } Array;
- Array init_arr(int);
- void print_arr(Array);
- void free_arr(Array);
- void free_arr_IDK(Array*);
- void add_to_arr(Array*, int);
- void remove_from_arr(Array*, int);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement