C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[71479] 동적 1차원 배열의 최대 크기?
빌더초보 [] 3339 읽음    2014-06-25 22:54
안녕하세요. C++ 빌더 QnA 에서 많은걸 배우고 있는 빌더초보입니다.

32 bit 컴파일러에서 동적으로 생성한 1차원 배열이 최대로 가질 수 있는 크기가 제한이 있나요?


	int size=1024*1024*460;
	int inc =1024;

	while (1) {
		char *a = new char[size];
		delete[] a;
		size+=inc;
		Memo1->Lines->Add(size);

	}



이런식으로 테스트 해봤는데 대략 450~500 메가 사이에서 bad_alloc 에러가 발생하더군요.

다른 컴퓨터, 다른 빌더버전(2010, XE, XE2)으로 테스트 해봤는데 최대로 생성된 길이가 507메가 였습니다.

TMemoryStream으로도 테스트 해봤는데 비슷하더군요.

하나의 포인터가 표시할 수 있는 길이의 제한이 있는건가요?



다차원 배열로는 기가 단위도 넘기는거 보니 heap 이라는 영역의 제한도 아닌것 같고...

메모리 단편화 때문이라고 보기엔 항상 저 크기정도에서 에러 나는것도 이상하고...

32G RAM인 환경에서도 마찬가지였습니다.



다시 질문드리자면, 동적으로 생성한 1차원 배열이 가질수 있는 최대 크기가 얼마이며,
왜 그렇게 되는지가 알고 싶습니다.

고수님들 답변 부탁드립니다.




+ -

관련 글 리스트
71479 동적 1차원 배열의 최대 크기? 빌더초보 3339 2014/06/25
71482     Re:동적 1차원 배열의 최대 크기? 3873 2014/06/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.