그래서,이 지금까지 저를 귀찮게하는 장이다 예외 : 액세스 위반 읽기 위치
void CNCread(fPointer){
printf("\n");
fPointer = fopen ("CNCG.txt", "r");
char line[30];
while(!feof(fPointer)){
fgets(line, 150, fPointer);
puts(line);
}
fclose (fPointer);
return;
}
내가 얻을, 컴파일 실행하고 실행 한 후 다음과 같은 오류 이 함수는 다음과 같습니다.
Parser.exe의 0x00007FFCA1DEEAC5 (ntdll.dll)에서 예외가 throw되었습니다. 0xC0000005 : 0xFFFFFFFFFFFFFFFF 위치에서 액세스 위반이 발생했습니다.
방금이 프로젝트를 Code :: Blocks에서 Visual Studio 2015로 변환하고 legacy_stdio_definitions.lib 등을 추가 했으므로 문제는 아니지만 code :: code와 함께 잘 작동합니다. 미리 감사드립니다.
'문자 라인 [30]'-'는 fgets (라인 150은 ...'- 5 파운드 가방에 감자 10 파운드 물건 시도 – PaulMcKenzie
명백한 오류가 당신의 문자 배열이 있다는 것입니다? 너무 작고 라인이 30 자 이상이지만 정의되지 않은 동작을 일으킬 수 있지만 다른 문제가있을 수 있으므로 [mcve]를 게시하십시오. 또한 Visual Studio를 사용하여이 실제 코드를 컴파일했다고 확신하지 않습니다 - VS 2015'C '컴파일러는 여전히 C89/90 표준이며, 함수 블록의 중간에 변수를 선언 할 수 없습니다. – PaulMcKenzie
@PaulMcKenzie : 사실이 아닙니다 .VS는 오랫동안 C89였으며 이제는 C99 하지만 tgmath.h와 복합체. 예, 코드와 혼합 된 선언이 포함되어 있습니다. – librik