#include using namespace std; #define DTYPE short struct dynarray { DTYPE *data; size_t items; size_t space; }; void init(struct dynarray *arr, size_t capacity){ arr->space = capacity; arr->data = (DTYPE*)malloc(sizeof(DTYPE) * capacity); arr->items = 0; } void append(struct dynarray *arr, DTYPE new_item){ if(arr->items == arr->space){ arr->data = (DTYPE*)realloc(arr->data, sizeof(DTYPE) * (arr->space + 10)); arr->space += 10; } arr->data[arr->items] = new_item; arr->items++; } void free_dynarray(struct dynarray *arr){ free(arr->data); } int main(){ struct dynarray test_array; init(&test_array, 10); for(int i = 0; i < 100; i++) append(&test_array, i * 1.5); for(int i = 0; i < 100; i++) cout << test_array.data[i] << " "; cout << endl; free_dynarray(&test_array); struct dynarray other_array; init(&other_array, 10); for(int i = 0; i < 100; i++) append(&other_array, i * 1.5); for(int i = 0; i < 100; i++) cout << other_array.data[i] << " "; cout << endl; free_dynarray(&other_array); return 0; }