|
저도 미흡하여 잘 모르긴 하지만 의미만 전달되게 적어보겠습니다.
실행파일을 컴파일 할 때 스택과 힢 영역을 할당하도록 컴파일 됩니다.
프로젝트 옵션의 링커탭을 살펴보시면 min, max 사이즈의 스택과 힢이 결정되어있습니다.
new로 할당하시면 힢에 형성됩니다.
그래서 new로는 한계이상 큰 연속 메모리를 잡을 수 없습니다.
더 큰 메모리를 잡을 때는 다른 방법이 있습니다.
물론 작업관리자의 성능탭에서 살펴보시려면 질문글에서 처럼 한바이트 수준으로는 새발의 피라서
표시도 안나겠죠?
double *test = new double [3000][600][3];
test[0][0][0] = 1.0;
이정도 잡아주시면 금방 표시납니다...ㅋㅋ
해제해주실 때는
delete [] test;
보라색파리 님이 쓰신 글 :
: new로 동적 메모리를 생성하면 메모리 사용량이 늘어나고 delete으로 해지 시키면
: 반대로 메모리 사용량이 줄어드는 거잖아요.. 이때 메모리 사용량을 확인할 수 있는 방법이 없나요..??
:
: 참고로 작업관리자에서 프로세스에 보면 현재 윈도우 환경에서 진행되고 있는 모든 프로세스들과 메모리 사용량을
: 확인할 수 있자나요..?? 그래서 작업관리자의 메모리 사용량을 확인하면서 테스트해봤는데 뜻대로 안돼드라고요..
:
: 테스트는 간단하게
: 전역으로 아무변수하나 선언해놓구요..
: ex)
: char *aaa;
:
: 버튼1
: {
: aaa = new char;
: }
:
: 버튼2
: {
: delete aaa;
: }
: 이럴경우 버튼1을 누르면 메모리 사용량이 증가하고 버튼2를 누르면 메모리 사용량이 줄어들어야 되는거 아닌가요..??
: 하지만 결과는 영 이상하네요..처음 한두번 누를때만 버튼클릭이벤트시에만 메모리가 증가되고 그담부터는 아무 영향없네요... 답변점 부탁드립니다....
|