From 4a923f5a8612e750264c244347674440d4726ca5 Mon Sep 17 00:00:00 2001 From: gonglja <39959756+Gonglja@users.noreply.github.com> Date: Wed, 13 Sep 2023 02:50:43 +0800 Subject: [PATCH] Fix `insert` function in `mylist.c` (#747) * fix(codes/cpp): Memory leak fix: the space was not freed when pop removed the element. * fix(codes/cpp): Fix access error when printArray(arr, 0) * Update PrintUtil.hpp * fix(codes/c): Fix some errors of cmake build * feat(codes/c): Add hashing_search.c * styles(codes/c): Modify function description * styles(codes/c): Modify binary_search.c code style * fix(codes/c): Fix the problem in binary_tree_bfs.c and the problem that the memory is not released. * feat: Add preorder_traversal_i_compact.c * feat(codes/c): Add head_sort.c * feat(codes/c): Add bucket_sort.c * feat(codes/c): Add binary_search_edge.c * fix(codes/c): Add programs that are not managed by cmake (c code) * feat(codes/c): Add selection_sort.c * style(codes/c): Change swap in selection_sort.c to `selectionSort` * styles(codes/c): Change style. * fix(codes/c): Fix some formatting errors and temporarily remove backtracking chapters * fix(codes/c): Fix space_complexity.c build error. * feat(codes/c): Add array_binary_tree.c * feat(code/c): Update push_back and pop_back in vector.h * styles(codes/c): Adjust format. * feat(codes/c): Add `interation.c ` `recursion.c` `simple_hash.c` `binary_search_edge.c` `binary_search_insertion.c` in C codes. * fix(mylist.c): Fix `insert` function in `mylist.c` https://github.com/krahets/hello-algo/discussions/32#discussioncomment-6974163 --------- Co-authored-by: Yudong Jin --- codes/c/chapter_array_and_linkedlist/my_list.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/codes/c/chapter_array_and_linkedlist/my_list.c b/codes/c/chapter_array_and_linkedlist/my_list.c index f8ab8f560..b261a6877 100644 --- a/codes/c/chapter_array_and_linkedlist/my_list.c +++ b/codes/c/chapter_array_and_linkedlist/my_list.c @@ -68,6 +68,10 @@ void add(myList *list, int num) { /* 中间插入元素 */ void insert(myList *list, int index, int num) { assert(index >= 0 && index < size(list)); + // 元素数量超出容量时,触发扩容机制 + if (size(list) == capacity(list)) { + extendCapacity(list); // 扩容 + } for (int i = size(list); i > index; --i) { list->nums[i] = list->nums[i - 1]; }