심사문제 38.8 관련
, 한 현식님이 작성무작위 함수 생성해서 지뢰 배열하려고 첨부와 같이 코딩했는데요,
실행시키면 작동이 중지되었다는 오류가 뜹니다.
원인이 무엇인가요?
P.S.
난수 생성 안하고 CODE상에서 입력하면 정상적으로 작동하는데,
SCANF 쓰거나, 난수 생성하면 오류가 뜹니다.
회신: 심사문제 38.8 관련
, 도장_ 관리자님이 작성문제에서 요구하는 것처럼
5 5
*....
.*.**
.*...
.....
.....
결과 출력도 문제에 있는 예제처럼 해야 합니다. 문자열 비교로 심사하므로 공백이라도 차이가 있으면 오답이 됩니다.
컴파일 오류가 있으면 안 됩니다. 이는 잘못 코딩한 것입니다.
38.8.c(23): warning C4047: '=': 'char *'의 간접 참조 수준이 'int'과(와) 다릅니다.
38.8.c(19): warning C4047: '초기화 중': 'char **'의 간접 참조 수준이 'int'과(와) 다릅니다.
온라인 심사에 사용되는 GCC에서는 더 많은 경고가 표시됩니다.
38.8.q.c:5:6: warning: return type of ‘main’ is not ‘int’ [-Wmain]
38.8.q.c: In function ‘main’:
38.8.q.c:7:2: warning: implicit declaration of function ‘srand’ [-Wimplicit-function-declaration]
38.8.q.c:18:2: warning: implicit declaration of function ‘malloc’ [-Wimplicit-function-declaration]
38.8.q.c:18:13: warning: incompatible implicit declaration of built-in function ‘malloc’ [enabled by default]
38.8.q.c:29:4: warning: implicit declaration of function ‘rand’ [-Wimplicit-function-declaration]
38.8.q.c:67:3: warning: implicit declaration of function ‘free’ [-Wimplicit-function-declaration]
38.8.q.c:67:3: warning: incompatible implicit declaration of built-in function ‘free’ [enabled by default]
38.8.q.c:70:2: warning: incompatible implicit declaration of built-in function ‘free’ [enabled by default]
void main은 더는 쓰이지 않습니다. int main으로 써야 합니다.
실행 도중 오류가 발생하는 것은 메모리 접근 위반 때문입니다. Unit 6을 참고하여 디버거로 한 단계씩 실행하기(F11)를 사용해보세요.