Почему это фред сегфо - PullRequest
0 голосов
/ 17 января 2019

Я пробовал много вещей, чтобы исправить эту проблему, но я не уверен, что происходит не так, потому что, насколько я понимаю, линия фреда не должна сегрегировать

// ensure proper usage
    if (argc != 2)
    {
        fprintf(stderr, "Usage: ./recover file");
        return 1;
    }

    char* recover = argv[1];
    // open input file
    FILE * raw_file = fopen(recover, "r");
    if (raw_file == NULL)
    {
        fprintf(stderr, "Could not open %s.\n", recover);
        return 2;
    }

    //somehow read the file

    int counter = 1;
    char file[2];
    sprintf(file,"%03i.jpg",counter);

    int buffer[512];

    //read file and put into buffer
    int*bf = malloc(sizeof(int));
    fread(bf, sizeof(int), 1, raw_file);

1 Ответ

0 голосов
/ 17 января 2019

вы разбили свой стек в этом блоке до вашего fread

char file[2];
sprintf(file,"%03i.jpg",counter);

file имеет малый размер для хранения количества символов, которые вы в него форматируете.

...