我正在阅读尺寸为512 * 681的.pgm文件。
我的调试器将分段错误指向fscanf(image, "%d", (*M)[i][j]);
。我该如何解决?
我没有添加open_pgm
等功能,因为我确定一切正常。
输入
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;
}
答案 0 :(得分:1)
代表
fscanf(image, "%d", (*M)[l][c]);
尝试改为
fscanf(image, "%d", &((*M)[l][c]));