Merhaba Bir pgm değerinin alt değerlerinde okuma ile ilgili bir sorum var. 2d dyanmik bir dizi yaptık ve bir arabellek oluşturabilmek için yükseklik ve genişlik için 2 fazla alan ekledik ancak 1. tamsayıya genişlik + 1 okumaya çalıştığımda işe yaramıyor. Kodun neden burada durduğuna dair ipuçları var mı?Bir pgm dosyasında okuma
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;}
}
Sorun herhangi bir yerde olabilir. Lütfen [mcve] 'nin nasıl sağlanacağını okuyun. – user694733
'fopen()' 'NULL' döndürdüğünde, dosyanın açılmayacağı, ** dosya ** nın boş olamayacağı anlamına gelir. Mevcut olmayabilir veya program buna erişmeye yetkili olmayabilir veya başka bir sorun olabilir. Boş bir dosya açmak mümkündür ve eğer 'fopen()' ile başarılı bir şekilde yaparsanız, döndürdüğü gösterici * değil * 'NULL'dur. –
"Çalışmıyor" tanımını yapın. –