From 34b6a52d5d69c3a27f26f349303cbe65badca246 Mon Sep 17 00:00:00 2001 From: guishenking Date: Tue, 19 Aug 2025 22:20:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AE=B9=E5=99=A8=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/vector/vector.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/lib/vector/vector.c b/src/lib/vector/vector.c index 55e7c7c..56307d7 100755 --- a/src/lib/vector/vector.c +++ b/src/lib/vector/vector.c @@ -11,6 +11,13 @@ #include "vector.h" #include +/** + * @brief 创建新的数组容器 + * + * @param elem_size + * @param initial_capacity + * @return vector_t* + */ vector_t *vector_create(size_t elem_size, size_t initial_capacity){ vector_t *vec = malloc(sizeof(vector_t)); if (!vec) return NULL; @@ -21,13 +28,21 @@ vector_t *vector_create(size_t elem_size, size_t initial_capacity){ vec->capacity = initial_capacity > 0 ? initial_capacity : 1; vec->data = malloc(vec->capacity * elem_size); if (!vec->data) { - free(vec); + free(vec);//内存初始化失败,释放vec + vec = NULL; // 确保vec为NULL以避免后续操作出现问题 return NULL; } return vec; } +/** + * @brief 销毁容器 + * + * @param vec + * @return true + * @return false + */ bool vector_destroy(vector_t *vec) { if (vec) { if (!vec->data) {//虽然data指针可能为NULL,但内存可以被释放 @@ -43,7 +58,7 @@ bool vector_destroy(vector_t *vec) { /** - * @brief 向向量末尾添加元素 + * @brief 向容器末尾添加元素 * * @param vec * @param elem @@ -68,7 +83,7 @@ bool vector_push_back(vector_t *vec, const void *elem){ } /** - * @brief + * @brief 从容器尾部删除元素 * * @param vec * @return true @@ -77,7 +92,7 @@ bool vector_push_back(vector_t *vec, const void *elem){ bool vector_pop_back(vector_t *vec){ if (!vec || vec->size == 0) return false; // 检查vec是否为NULL或空 - vec->size--; + vec->size--; // 减少元素数量 if (vec->size < vec->capacity / 4) { size_t new_capacity = vec->capacity / 2; if (new_capacity < 1) new_capacity = 1; // 确保容量至少为1