diff --git a/header/vectors.h b/header/vectors.h index 5347543b40178de853c2d462b630ab7660ed77b6..ad1d322220fd1e2cb66a5fe2d4bc1b8fdabd0475 100644 --- a/header/vectors.h +++ b/header/vectors.h @@ -19,7 +19,7 @@ typedef int type; typedef struct vector_* vector; vector vector_create(); -vector vector_length(vector vec); - +int vector_length(vector vec); +void vector_push(vector vec, type element); #endif \ No newline at end of file diff --git a/src/test_vectors.c b/src/test_vectors.c index 31579d2755a298433b38c85496a10b31233cfe60..2605805593751c95dfa9a979d18d69efea3cbe77 100644 --- a/src/test_vectors.c +++ b/src/test_vectors.c @@ -13,5 +13,11 @@ int main() { vector test = vector_create(); + + printf("%d \n", vector_length(test)); + + vector_push(test, 15); + + printf("%d \n", vector_length(test)); return 0; } \ No newline at end of file diff --git a/src/vectors.c b/src/vectors.c index 4941d2b80a90435534654ee75d02f6b30547de8d..c7a85b38a2d3895c860241759dacff031cdc0ce3 100644 --- a/src/vectors.c +++ b/src/vectors.c @@ -24,7 +24,20 @@ vector vector_create() return vec; } -vector vector_length(vector vec) +int vector_length(vector vec) { return vec->length; } + +void vector_push(vector vec, type element) +{ + if(vec->length >= vec->capacity) + { + vec->content = realloc(vec->content, sizeof(type) * vec->capacity * 2); + vec->capacity = vec->capacity * 2; + } + + vec->content[vec->length] = element; + vec->length++; +} +