Skip to content

Commit

Permalink
fix: bug fixes for array_hash_map.c and counting_sort.c (#968)
Browse files Browse the repository at this point in the history
* 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`

#32 (comment)

* feat(codes/c): Add binary_search_recur.c

* fix(codes/c): Bug fixes in discussion
#78
#428

---------

Co-authored-by: Yudong Jin <krahets@163.com>
  • Loading branch information
Gonglja and krahets committed Nov 26, 2023
1 parent f5407f2 commit d960c99
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
2 changes: 1 addition & 1 deletion codes/c/chapter_hashing/array_hash_map.c
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ void pairSet(ArrayHashMap *hmap, MapSet *set) {
for (i = 0; i < HASHTABLE_CAPACITY; i++) {
if (hmap->buckets[i] != NULL) {
entries[index].key = hmap->buckets[i]->key;
entries[index].val = malloc(strlen(hmap->buckets[i]->val + 1));
entries[index].val = malloc(strlen(hmap->buckets[i]->val) + 1);
strcpy(entries[index].val, hmap->buckets[i]->val);
index++;
}
Expand Down
10 changes: 8 additions & 2 deletions codes/c/chapter_sorting/counting_sort.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ void countingSortNaive(int nums[], int size) {
}
// 2. 统计各数字的出现次数
// counter[num] 代表 num 的出现次数
int *counter = malloc(sizeof(int) * m);
int *counter = calloc(m, sizeof(int));
for (int i = 0; i < size; i++) {
counter[nums[i]]++;
}
Expand All @@ -29,6 +29,9 @@ void countingSortNaive(int nums[], int size) {
nums[i] = num;
}
}

// 4. 释放内存
free(counter);
}

/* 计数排序 */
Expand All @@ -43,7 +46,7 @@ void countingSort(int nums[], int size) {
}
// 2. 统计各数字的出现次数
// counter[num] 代表 num 的出现次数
int *counter = malloc(sizeof(int) * m);
int *counter = calloc(m, sizeof(int));
for (int i = 0; i < size; i++) {
counter[nums[i]]++;
}
Expand All @@ -62,6 +65,9 @@ void countingSort(int nums[], int size) {
}
// 使用结果数组 res 覆盖原数组 nums
memcpy(nums, res, size * sizeof(int));

// 5. 释放内存
free(counter);
}

/* Driver Code */
Expand Down

0 comments on commit d960c99

Please sign in to comment.