Ошибка сегментации C: функция fscanf в функции - PullRequest
0 голосов
/ 28 апреля 2018

Я читаю файл .pgm с размерами 512 * 681.

Мой отладчик указывает на ошибку сегментации на fscanf(image, "%d", (*M)[i][j]);. Как мне это исправить?

Я не добавил некоторые функции, такие как open_pgm, потому что уверен, что с ними все в порядке.

Input

12
13
12
12
12
12
10
...

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>


void Store(int ***M, int lines, int columns, FILE *image)
{
    for(int l = 0; l < lines; l++)
    {
        for(int c = 0; c < columns; c++)
        {
            fscanf(image, "%d", (*M)[l][c]);
        }
    }
}

int main(int argc, char *argv[])
{
    FILE *image;
    char *string;
    int lines;
    int columns;


    string = malloc(18*sizeof(char));

    open_pgm(string, argv, &image); 

    fscanf(image, "%d %d", &lines, &columns);

    int **M; 
    allocMatrix(&M, lines, columns);


    Store(&M, lines, columns, image);
    printf("%d\n", M_lida[0][0]);



    close(&imagem);
    close(&texto);  

    return 0;
}

1 Ответ

0 голосов
/ 28 апреля 2018

для

        fscanf(image, "%d", (*M)[l][c]);

попробуйте вместо

        fscanf(image, "%d", &((*M)[l][c]));
...