From 65966ded0cc15c5966c6568cf0ff2f2bbe1fc29a Mon Sep 17 00:00:00 2001 From: Stefan Zabka Date: Sun, 24 May 2020 12:09:46 +0200 Subject: Big remodelling --- 02_exercise/array.c | 59 ----------------------------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 02_exercise/array.c (limited to '02_exercise/array.c') diff --git a/02_exercise/array.c b/02_exercise/array.c deleted file mode 100644 index 4f08366..0000000 --- a/02_exercise/array.c +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************//** - * @file array.c - * @author Dorian Weber - * @brief Implementation des generalisierten Arrays. - ******************************************************************************/ - -#include "array.h" -#include -#include -#include - -/* ********************************************************* public functions */ - -/* (die runden Klammern um einige Funktionsnamen sind notwendig, da Makros - * gleichen Namens existieren und der Präprozessor diese expandieren würde) */ - -void* (arrayInit)(size_t capacity, size_t size) { - ArrayHdr *hdr = malloc(sizeof(*hdr) + size*capacity); - - if (hdr == NULL) - return NULL; - - hdr->len = 0; - hdr->cap = capacity; - - return hdr + 1; -} - -void arrayRelease(void* self) { - free(((ArrayHdr*) self) - 1); -} - -void* (arrayPush)(void* self, size_t size) { - ArrayHdr *hdr = ((ArrayHdr*) self) - 1; - - if (hdr->len == hdr->cap) { - hdr->cap *= 2; - hdr = realloc(hdr, sizeof(*hdr) + size*hdr->cap); - - if (hdr == NULL) { - fputs("program ran out of heap memory\n", stderr); - exit(-1); - } - } - - ++hdr->len; - return hdr + 1; -} - -void (arrayPop)(void* self) { - ArrayHdr *hdr = ((ArrayHdr*) self) - 1; - assert(hdr->len > 0); - --hdr->len; -} - -/* Symbol für die Inline-Funktionen erzeugen und aus diesem Modul exportieren */ -extern void arrayClear(void* self); -extern int arrayIsEmpty(const void* self); -extern size_t arrayLen(const void* self); -- cgit v1.2.3-54-g00ecf