2009-09-07 3 views
2

200,000,000은 최대 32 비트 INTEGER, 2,147,483,647보다 훨씬 적습니다.INTEGER 배열의 크기를 200,000,000으로 지정하면 왜 StackOverflowException이 발생합니까?

+2

INT_MAX와 관련 있다고 생각한 사실 때문에 스택 오버플로가 무엇인지 분명하지 않다는 것을 알게되었습니다. http://en.wikipedia.org/wiki/Stack_overflow – Chuck

+2

스택 오버플로는 스택의 크기와 관련이 있으며 Int의 크기와 관련이 없습니다. –

+3

StackOverflow에서 스택 오버플로입니다. 제프리가 우리와 놀고있는 것 같아요. Neat :-) –

답변

11

스택 오버플로는 비트 수가 부족하여 컴퓨터가 메모리가 부족 해지면 발생하지 않습니다. 200M 엔트리 어레이는 800Mb의 메모리를 필요로합니다. 그것은 스택에 넣기 매우 큽니다.

+2

일반적으로 메모리 크기는 문제가 아니지만 전체 RAM 용량보다 작은 스택 크기입니다. 예를 들어, 4GB RAM이 장착 된 Mac OS 노트북의 기본 스택 크기는 8MB입니다. –