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