fix: bug fixes for array_hash_map.c and counting_sort.c (#968)
* 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 * feat(codes/c): Add binary_search_recur.c * fix(codes/c): Bug fixes in discussion https://github.com/krahets/hello-algo/discussions/78\#discussioncomment-7611511 https://github.com/krahets/hello-algo/discussions/428\#discussioncomment-7637613 --------- Co-authored-by: Yudong Jin <krahets@163.com>
This commit is contained in:
parent
f5407f2aaa
commit
d960c99a1f
@ -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++;
|
||||
}
|
||||
|
@ -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]]++;
|
||||
}
|
||||
@ -29,6 +29,9 @@ void countingSortNaive(int nums[], int size) {
|
||||
nums[i] = num;
|
||||
}
|
||||
}
|
||||
|
||||
// 4. 释放内存
|
||||
free(counter);
|
||||
}
|
||||
|
||||
/* 计数排序 */
|
||||
@ -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]]++;
|
||||
}
|
||||
@ -62,6 +65,9 @@ void countingSort(int nums[], int size) {
|
||||
}
|
||||
// 使用结果数组 res 覆盖原数组 nums
|
||||
memcpy(nums, res, size * sizeof(int));
|
||||
|
||||
// 5. 释放内存
|
||||
free(counter);
|
||||
}
|
||||
|
||||
/* Driver Code */
|
||||
|
Loading…
x
Reference in New Issue
Block a user