Я пытаюсь открыть файл с помощью fopen, но мне не нужно статическое местоположение, поэтому я получаю строку от пользователя, когда он/она запускает программу. Однако, если пользователь не вводит его, указывается файл по умолчанию.
Могу ли я просто поместить переменную malloc в параметр пути fopen?
char *file_path_mem = malloc(sizeof(char));
if (file_path_mem != NULL) //Null if out of memory
{
printf("Enter path to file, if in current directory then specify name\n");
printf("File(default: marks.txt): ");
while ((c = (char)getchar()) != '\n')
{
file_path_mem[i++] = c;
file_path_mem = realloc(file_path_mem, i+1 * sizeof(char));
}
file_path_mem[i] = '\0';
if (i == 0 && c == '\n')
{
file_path_mem = realloc(file_path_mem, 10 * sizeof(char);
file_path_mem = "marks.txt";
}
}
else
{
printf("Error: Your system is out of memory, please correct this");
return 0;
}
if (i==0)
{
FILE *marks_file = fopen("marks.txt", "r");
}
else
{
FILE *marks_file = fopen(file_path_mem, "r");
}
free(file_path_mem);
Как вы могли догадаться, я новичок, поэтому, если я сделал что-то ужасное неправильно, извините.