을받은16 char* input = (char*) argv[1]; 17 FILE *fp = fopen (input, "r"); 18 if(fp == NULL) 19 { 20 printf(" reading input file failed"); 21 return 0; 22 } 23 fseek(fp,0,SEEK_END); 24 int file_size = ftell(fp); 29 rewind(fp); 30 int i; 31 int totalRun; 32 char * temp; 33 char* model; 34 char* example; 36 fscanf(fp,"%d",&totalRun); 37 fscanf(fp,"%s",model);
위는fscanf() 세그 폴트 프로그램은 신호 EXC_BAD_ACCESS
프로그램이 신호를받은 나는 37 행에서이 오류가 내 코드 "fscanf (FP,"% S ".MODEL)"입니다 EXC_BAD_ACCESS, 메모리에 액세스 할 수 없습니다. 이유 : KERN_PROTECTION_FAILURE 주소 : 0x00007fff5fc00730 0x00007fff8db20bcb in __svfscanf_l()
이 문제의 원인은 무엇입니까 ?? 나는 gdb에서 * fp를 들여다 보았다. totalRun _offset = 0을 읽고 _offset = 4096을 읽은 후 totalRun의 내용이 정확했습니다 ("3"). 한 줄만 읽고 왜 4096 오프셋입니까? 또한 FILE에서 참조하는 _blksize는 무엇입니까?
는 당신은model
메모리를 할당 할 필요가
'모델'에는 메모리가 할당되지 않습니다. 즉 malloc을 수행합니다. –