This commit is contained in:
Džubara 2025-01-19 19:52:33 +01:00
parent b1da0bb771
commit 1e6fb33624

View File

@ -120,18 +120,33 @@ int compress_1(const char* input_file_name, const char* output_file_name) {
unsigned char* data = read_file(input_file_name, &size);
if (!data) return -1;
HuffmanNode* root = build_huffman_tree(data, size);
if (!root) {
free(data);
return -1;
}
char* codes[256] = {0};
char buffer[256];
generate_huffman_codes(root, codes, buffer, 0);
FILE* output_file = fopen(output_file_name, "wb");
if (!output_file) {
perror("Error opening output file");
free(data);
free_huffman_tree(root);
return -1;
}
fwrite(data, 1, size, output_file);
fclose(output_file);
printf("Compressing using Huffman coding...\n");
// Clean up
for (int i = 0; i < 256; i++) {
if (codes[i]) free(codes[i]);
}
@ -141,6 +156,7 @@ int compress_1(const char* input_file_name, const char* output_file_name) {
return 0;
}
int decompress_1(const char* input_file_name, const char* output_file_name) {
size_t size;
unsigned char* data = read_file(input_file_name, &size);