남병철님이 말씀하신 것처럼 new로 할당해서 사용하는 게 바람직할 듯 합니다
그러나 간단하게 작성하는 것이라면 그냥 배열을 선언해도 되겠죠.(개인적으로는 이게 더 편합니다)
8*9000 = 7200..대략 7.2KB입니다. 남병철님이 KB와 MB의 혼동이 있으셨네요
그 정도 크기의 배열은 보통 잡아도 별 이상이 없습니다. 근데..에러 메세지와...전역변수를 많이 사용했다는 말이 약간 걸리기는 합니다.
그래도 전역변수로 배열을 잡으셨다면 99%는 이상없을 듯 한데요..
혹시 함수 안에 변수를 선언하신 건 아닌지...(간혹 정말 황당하게 한 함수 내에서 엄청난 양의 배열을 사용하는 경우를 본 적이 있어서)
남병철.레조 님이 쓰신 글 :
: new로 생성하셨나요?
: 정적으로 정의하면 8 * 9000 = 7.2 MB --;;
: 32bit 시스템에서 기본 스택 크기 설정은 4MB입니다.
:
:
:
: 비베시러 님이 쓰신 글 :
: : 배열을 double형으로 9000개 선언해야 합니다.
: : 계산을 위한 loop up table이죠.
: :
: : 그런데 기존 프로그램에서 전역변수와 함수들을 많이 사용해서
: :
: : 배열을 선언하면,
: :
: : array size too large
: : Too much global data defined in file
: :
: : 이라고 나옵니다.
: :
: : 어떻게 해결 할 수 있는 방법이 없을까요?
|