diff options
author | Stefan Zabka <zabkaste@hu-berlin.de> | 2020-05-24 12:19:52 +0200 |
---|---|---|
committer | Stefan Zabka <zabkaste@hu-berlin.de> | 2020-05-24 12:19:52 +0200 |
commit | 04576dc2a3f761eb041b808b56f13a58052e7655 (patch) | |
tree | c6bed6db34e29f0dec0c844fbc931b3dd4fab8db /shell/array.c | |
parent | 65966ded0cc15c5966c6568cf0ff2f2bbe1fc29a (diff) | |
download | betriebssysteme-04576dc2a3f761eb041b808b56f13a58052e7655.tar.gz betriebssysteme-04576dc2a3f761eb041b808b56f13a58052e7655.zip |
Moved back to 02_exercise
Diffstat (limited to 'shell/array.c')
-rw-r--r-- | shell/array.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/shell/array.c b/shell/array.c deleted file mode 100644 index 4f08366..0000000 --- a/shell/array.c +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************//** - * @file array.c - * @author Dorian Weber - * @brief Implementation des generalisierten Arrays. - ******************************************************************************/ - -#include "array.h" -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -/* ********************************************************* 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); |