alphago92   3년 전

int arr[1000000]

이런것도 main함수내에 선언하면 아예 프로그램이 안돌아가더군요..

어차피 main함수 ari는 여러번 쌓일 일도 없을텐데

scpc에서도 큰 메모리는 global 변수로 만들라고 제한을 둔거같던데

이유가 있을까요? 




yukariko   3년 전

지역변수는 스택메모리에 위치하게됩니다.

그런데 이 스택 메모리에 할당된 메모리크기는 우분투 기준 8MB정도 밖에 되지않습니다. 윈도우도 비슷한정도로 적죠.

따라서 동적할당을 하거나 데이터영역에 쌓이는 전역으로 선언해야 합니다.

다만 동적할당을 매번 처리하기 버거우니 손쉬운 전역을 사용하는 것이죠. 

alphago92   3년 전

아 스택영역은 엄청 적게 할당되는군요...좋은 지식감사합니다 yukariko님 ^^

sgchoi5   3년 전

전역변수는 초기화가 됩니다... 그래서, 편한 것도 있지요..


댓글을 작성하려면 로그인해야 합니다.