fix: fix free hex_str

This commit is contained in:
2024-01-09 15:20:28 +08:00
parent d014791d21
commit 668120ae48

View File

@@ -764,8 +764,8 @@ int main() {
// char *filename; filename 未分配内存 // char *filename; filename 未分配内存
char filename[100]; // 假设文件名长度不超过 99 个字符 char filename[100]; // 假设文件名长度不超过 99 个字符
printf("Enter the name of the saved file: "); printf("Enter the name of the saved file: ");
// scanf("%s", filename); scanf("%s", filename);
strcpy(filename, "1.txt"); // strcpy(filename, "1.txt");
// 生成的比特串保存在文本文件中 // 生成的比特串保存在文本文件中
FILE *file = fopen(filename, "w"); FILE *file = fopen(filename, "w");
@@ -775,7 +775,8 @@ int main() {
} }
clock_t start_time = clock(); clock_t start_time = clock();
char *hex_str =
(char *)malloc(sizeof(char) * (returned_bits_len / 8 * 2 + 1));
for (int j = 1; j <= returned_bits_num; ++j) { for (int j = 1; j <= returned_bits_num; ++j) {
do { do {
int zero_count = 0; int zero_count = 0;
@@ -809,15 +810,14 @@ int main() {
} while (!pass); } while (!pass);
// 将二进制数据转为十六进制后写入文件 // 将二进制数据转为十六进制后写入文件
char *hex_str =
(char *)malloc(sizeof(char) * (returned_bits_len / 8 * 2 + 1));
for (int i = 0; i < returned_bits_len / 8; ++i) { for (int i = 0; i < returned_bits_len / 8; ++i) {
sprintf(&hex_str[i * 2], "%02x", returned_bits[i]); sprintf(&hex_str[i * 2], "%02x", returned_bits[i]);
} }
hex_str[returned_bits_len / 8 * 2] = '\0'; hex_str[returned_bits_len / 8 * 2] = '\0';
fprintf(file, "%s\n", hex_str); // 写入带有换行符的十六进制字符串 fprintf(file, "%s\n", hex_str); // 写入带有换行符的十六进制字符串
free(hex_str);
} }
free(hex_str);
clock_t end_time = clock(); clock_t end_time = clock();
double execution_time = (double)(end_time - start_time) / CLOCKS_PER_SEC; double execution_time = (double)(end_time - start_time) / CLOCKS_PER_SEC;