Обновить 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); |     buildMinHeap(minHeap); | ||||||
|     return 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
 | // Build Huffman Tree
 | ||||||
| struct MinHeapNode* buildHuffmanTree(unsigned char data[], int freq[], int size) { | struct MinHeapNode* buildHuffmanTree(unsigned char data[], int freq[], int size) { | ||||||
|     struct MinHeapNode *left, *right, *top; |     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++) { |     for (int i = 0; i < 256; i++) { | ||||||
|         if (codes[i]) free(codes[i]); |         if (codes[i]) free(codes[i]); | ||||||
|     } |     } | ||||||
|  |     freeHuffmanCodes(codes);  // Освободите память для кодов
 | ||||||
|  |     freeMinHeap(minHeap);  // Освободите память для кучи
 | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user