Browse Source

arrays, for later refactor

master
alistair 4 years ago
parent
commit
379074924f
  1. 31
      erray.c
  2. 16
      erray.h

31
erray.c

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
#include "erray.h"
void chicken_array_extend(Chicken_Array array, void *item) {
if (1 + array.length == array.size) {
array.items = reallocarray(array.items, array.length + 1, sizeof(void *));
if (array.items) {
array.length++;
} else {
errx(9, "Malloc error");
}
}
}
Chicken_Array get_chicken_array(int length) {
Chicken_Array array;
if (length != 0) {
array.items = calloc(length, sizeof(void*));
if (!array.items) {
errx(9, "Malloc error");
}
}
array.length = 0;
array.size = length;
return array;
}
/* Frees a heap array */
void delete_chicken_array(Chicken_Array *array) {
free(array->items);
free(array);
}

16
erray.h

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
#include <stdlib.h>
#include <err.h>
struct chicken_array {
void **items;
int length;
int size;
};
typedef struct chicken_array Chicken_Array;
void chicken_array_extend(Chicken_Array, void *);
Chicken_Array get_fucked_array(int);
void delete_chicken_array(Chicken_Array *);
Loading…
Cancel
Save