2차원 배열을 클래스로 만들었는데요,(내부적으로는 보통배열입니다.) 이게 가로 X 세로 가 25 이상이면 프로그램이 종료할 때 세그맨테이션 오류를 일으킵니다. (종료하기 전까지는 모든게 정상적으로 작동합니다.) 디버거로 보면 libc.so.6 에서 오류가 나는데요, 크기가 25 이하인 경우는 에러가 나지 않습니다. 여러분 생각에는 뭐가 문제인 것 같나요??? (사정상 소스는 올리기가 어렵습니다.)
프로그램의 잘못이라는데 100원 걸겠습니다.
2차원 배열을 동적으로 할당하나요, 아니면 정적으로?
정적 배열인데도 문제가 생긴다면 stack 범위를 넘어서는 걸 수도 있겠네요. 25x25 배열이라면 이 class 하나에 수 KB나 되니깐요.
제가 실수를 했더군요.(공간도 할당하지 않고 저장하려고 함) 제대로 알아보지도 않고 글올려서 죄송...
그런데 g++ 로 컴파일하면 오류가 나는데 vc++6 로 컴파일하면 오류가 안나더군요. (릴리즈 모드) 그래서 처음에는 g++의 버그인줄 알았죠. vc++ 에는 혹시 코드를 알아서 수정해 주는 기능이라도 있나요???
컴파일 할때 어느 정도로 에러(또는 워닝)체크를 하느냐에 따른것입니다.
디폴트로 설정된 것이 VC++에선 할당한거 체크를 안하나 보네요.;;
gcc에선 -Wall 옵션을 주면 이거저거 별걸 다 체크합니다. ^^;
대략 500라인쯤 되면 그냥 컴파일 했을땐 워닝도 없던것이, -Wall 옵션 주면 한페이 넘어가는 경우도 수두룩~ :wink:
단순히 에러 체크 범위 설정 탓입니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
프로그램의 잘못이라는데 100원 걸겠습니다.2차원 배열을 동적으로
프로그램의 잘못이라는데 100원 걸겠습니다.
2차원 배열을 동적으로 할당하나요, 아니면 정적으로?
정적 배열인데도 문제가 생긴다면 stack 범위를 넘어서는 걸 수도 있겠네요. 25x25 배열이라면 이 class 하나에 수 KB나 되니깐요.
윗분 100원 따셨네요...
제가 실수를 했더군요.(공간도 할당하지 않고 저장하려고 함)
제대로 알아보지도 않고 글올려서 죄송...
그런데 g++ 로 컴파일하면 오류가 나는데 vc++6 로 컴파일하면
오류가 안나더군요. (릴리즈 모드)
그래서 처음에는 g++의 버그인줄 알았죠.
vc++ 에는 혹시 코드를 알아서 수정해 주는 기능이라도 있나요???
컴파일 할때 어느 정도로 에러(또는 워닝)체크를 하느냐에 따른것입니다.
컴파일 할때 어느 정도로 에러(또는 워닝)체크를 하느냐에 따른것입니다.
디폴트로 설정된 것이 VC++에선 할당한거 체크를 안하나 보네요.;;
gcc에선 -Wall 옵션을 주면 이거저거 별걸 다 체크합니다. ^^;
대략 500라인쯤 되면 그냥 컴파일 했을땐 워닝도 없던것이, -Wall 옵션 주면 한페이 넘어가는 경우도 수두룩~ :wink:
단순히 에러 체크 범위 설정 탓입니다.
댓글 달기