Обновить sk1/compressor.c
This commit is contained in:
parent
7830f11bdf
commit
94646354cf
@ -102,7 +102,21 @@ struct MinHeap* createAndBuildMinHeap(unsigned char data[], int freq[], int size
|
||||
buildMinHeap(minHeap);
|
||||
return minHeap;
|
||||
}
|
||||
void freeMinHeap(struct MinHeap* minHeap) {
|
||||
for (int i = 0; i < minHeap->size; ++i) {
|
||||
free(minHeap->array[i]);
|
||||
}
|
||||
free(minHeap->array);
|
||||
free(minHeap);
|
||||
}
|
||||
|
||||
void freeHuffmanCodes(char* codes[256]) {
|
||||
for (int i = 0; i < 256; ++i) {
|
||||
if (codes[i]) {
|
||||
free(codes[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Build Huffman Tree
|
||||
struct MinHeapNode* buildHuffmanTree(unsigned char data[], int freq[], int size) {
|
||||
struct MinHeapNode *left, *right, *top;
|
||||
@ -213,6 +227,8 @@ int compressFile(const char* input_file_name, const char* output_file_name) {
|
||||
for (int i = 0; i < 256; i++) {
|
||||
if (codes[i]) free(codes[i]);
|
||||
}
|
||||
freeHuffmanCodes(codes); // Освободите память для кодов
|
||||
freeMinHeap(minHeap); // Освободите память для кучи
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user