fix: fix free hex_str
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user