こんにちは私は、pgm値の下限値の読み方に関して質問があります.2dダイナミック配列を作成し、バッファを作成できるように高さと幅に余分なスペースを2つ追加しました最初の整数を幅+ 1に読み込もうとすると、コードがここで停止する理由はありません。pgmファイルでの読み込み
FILE *pfile; //pointer to file
pfile=fopen(input_pgm,"r");
int columns,rows,value,line_of_numbers;
char pformat[50];
if (pfile==NULL){
printf("File is empty lame-o\n");
}
else{ //Read from file
fscanf(pfile,"%s",pformat); //Things like P2,P5
fscanf(pfile,"%d",&columns); //Number of columns ,M, Need & or it will store it into address
fscanf(pfile,"%d",&rows); //Number of rows , N
fscanf(pfile,"%d",&value); //Number of value, W
//Allocating 2D array to store M numbers
//printf("Test");
int **board;
board = (int **)malloc((rows + 2) * sizeof(int *));
for (i=0;i<rows+2;i++){
board[i]=(int*)malloc((columns+2)*sizeof(int));
}
//printf("Test2");
//INITILIZING TO 0
board=memset(board,0,((columns+2)*(rows+2)));
//printf("Test");
//reading in numbers on to board from 1->/rows/columns+1
for(i=1;i<=rows+1;i++){
for(j=1;j<=columns+1;j++){
//printf("Test3"); /*does not work after this*/
int scanned_num;
fscanf(pfile,"%d",&scanned_num);
board[i][j]=scanned_num;}
}
問題はどこにでもある可能性があります。 [mcve]の提供方法をお読みください。 – user694733
'fopen()'が 'NULL'を返すときは、ファイルが開かれていないことを意味します。存在しないか、プログラムにアクセス権がないか、その他の問題がある可能性があります。空のファイルを開くことができます。もし 'fopen()'を使ってうまくいけば、それが返すポインタは '' NULLではありません。 –
「動作しません」と定義します。 –