AB 변수를 지역변수로 선언한 건가요?
지역변수이면 스택 오버플로우이지 않을까 합니다.
6*8,145,060 = 48,870,360 = 약48MB
윈도에서는 스택 기본크기가 1M 정도입니다.
1MB <<< 48MB
AB 변수를 동적으로 할당해보세요.
새롬 님이 쓰신 글 :
: 안녕들하세요?
:
: free pascal에서 array size를 크게 잡으면 exception 'External: SIGSEGV' 오류가 발생합니다.
:
: type
: A1 = array[1..6] of byte;
: B1 = array[1..8145060] of A1; <= 이 부분의 size를 작게하면 정상 수행함.
:
: var
: AB : B1;
:
: 위의 원코드에서 B1 size를 반정도로 줄이면 프로그램이 정상 동작하는데
: 크게하면 다음과 같은 오류가 발생합니다.
:
: - exception 'External: SIGSEGV'
: - line 236: begin <= 해당 프로시저의 begin문 입니다.
:
: 참고로 스펙은 다음과 같습니다.
:
: - Windows 7 Home Premium K (32 bit OS)
: - i7
: - RAM: 4G
:
: 해결 방법이 없을까요?
:
:
|