From 4bdf44d91905c8c659a7866ad902afdaa1294f82 Mon Sep 17 00:00:00 2001 From: leiyu3 Date: Thu, 22 Sep 2022 14:05:07 -0400 Subject: add check_valid_index --- libvector.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'libvector.c') diff --git a/libvector.c b/libvector.c index 29abc9d..04461b8 100644 --- a/libvector.c +++ b/libvector.c @@ -10,6 +10,7 @@ vector_t vector_init(int size){ return vec; } + int size(vector_t vec){ return vec.cur_size; } @@ -25,11 +26,15 @@ int is_empty(vector_t vec){ return 0; } -int at(vector_t vec, int index){ - if (index >= size(vec) || index < 0){ +void check_valid_index(vector_t vec, int index){ + if (index > size(vec) || index < 0){ printf("Index out of bound!!\n"); exit(-1); } +} + +int at(vector_t vec, int index){ + check_valid_index(vec, index); return vec.arr[index]; } @@ -40,7 +45,9 @@ void push(vector_t *vec, int value){ vec->cur_size++; } + void insert(vector_t *vec, int index, int val){ + check_valid_index(*vec, index); resize_vec_check(vec); int tmp; @@ -53,10 +60,7 @@ void insert(vector_t *vec, int index, int val){ } void delete_vec(vector_t *vec, int index){ - if (!(index < vec->cur_size)){ - printf("Invalid Index!\nFailed to Delete Element\n"); - exit(-1); - } + check_valid_index(*vec, index); int len = vec->cur_size - 1; for (int i = index; i < len; i++){ -- cgit v1.2.3