Память не может быть записана при изменении пути указателя файла - PullRequest
0 голосов
/ 23 февраля 2019

Мой код ниже работает хорошо, однако, когда я меняю путь указателя файла для файла ввода и вывода с const char * input_file = "input.txt"; на ../data/input.txt "для вводаЯ получаю следующую ошибку Ошибка памяти не может быть записана

Как изменить путь указателя файла на правильный файл в каталоге Ниже приведен основной код моей программы

   int main(int argc, char **argv)
    {
        const char *input_file = "input.txt";
        const char *output_file = "output.txt";

        int i, j, k, n;
        int cars_arrived, total_cars, max_queue_len, running_queue_len;
        int arrival_time, wait_time, max_wait_time, running_wait_time; 
        int departure_period, departure_timer;
        int light_timer, light_duration[3] = {0, 0, 0};
        int time, increment, runtime;
        int avg_wait_time, avg_queue_len;
        double arrival_rate, lambda;

        Light light;
        queue_t *queue = (queue_t *)malloc(sizeof(queue));
        parameters *param_list = read_input_file(input_file, &n);

        FILE *output_fp = fopen(output_file, "w");
        fprintf(output_fp, "%s\n", STUDENT_ID);

      parameters* read_input_file(const char *fname, int *num_scenarios)
{
    int i, j, k, idx, value;
    keyword key;
    parameters *param_list = NULL;
    FILE *fp = fopen(fname, "r");

            /* write the output to the file */
            fprintf(output_fp, "Arrival rate: %d cars per min\n", param_list[i][0]);
            fprintf(output_fp, "Departure rate: %d s per car\n", param_list[i][1]);
            fprintf(output_fp, "Runtime: %d min\n", param_list[i][2]);
            fprintf(output_fp, "Time increment:  %d ms\n", param_list[i][3]);
            fprintf(output_fp, "Light sequence: Green %d s; Amber %d s; Red %d s\n", 
                    param_list[i][6], param_list[i][5], param_list[i][4]);
            fprintf(output_fp, "Average length: %d cars\n", avg_queue_len);
            fprintf(output_fp, "Maximum length: %d cars\n", max_queue_len);
            fprintf(output_fp, "Average wait: %d s\n", avg_wait_time / 1000);
            fprintf(output_fp, "Maximum wait: %d s\n", max_wait_time / 1000);
        }

        fclose(output_fp);
        /* free memory */
        free(queue);
        free(param_list);

        return 0;

    }
...