/* * usb_serial_buffer.c * * Created on: Sep 24, 2017 * Author: Roy */ #include #include "usb_serial_buffer.h" void initArray(SerialBuffer *a, size_t initialSize) { a->buffer = (char *)malloc(initialSize); a->used = 0; a->size = initialSize; } void insertArray(SerialBuffer *a, char element) { // a->used is the number of used entries, because a->array[a->used++] updates a->used only *after* the array has been accessed. // Therefore a->used can go up to a->size if (a->used == a->size) { a->size += 1; a->buffer = (char *)realloc(a->buffer, a->size * sizeof(char)); } a->buffer[a->used++] = element; } void freeArray(SerialBuffer *a) { free(a->buffer); a->buffer = NULL; a->used = a->size = 0; }