#include <stdio.h>
#include <stdlib.h>
typedef struct {
int *data;
size_t size;
size_t capacity;
} Array;
Array ArrayInit() {
Array array;
array.size = 0;
array.capacity = 10;
array.data = (int *)malloc(sizeof(Array) * array.capacity);
if (array.data == NULL) {
perror("init fail: ");
free(array.data);
array.data = NULL;
}
return array;
}
int ArrayAppend(Array *array, int value) {
if (array->capacity < array->size) {
array->capacity *= 2;
}
array->data = (int *)realloc(array, array->capacity);
if (array->data == NULL) {
perror("append fail: ");
free(array->data);
array->data = NULL;
return 1;
}
array->size++;
array->data[array->size] = value;
return 0;
}
int main() {
Array arr = ArrayInit();
ArrayAppend(&arr, 12);
return 0;
}