큰 문자 배열을 선언하려고합니다. 문자 배열을 비트 맵으로 사용하고 있습니다 (부울지도의 경우 이 아닌 이미지 파일 유형). 다음 코드는 컴파일 오류를 생성합니다.C++에서 큰 문자 배열 선언
//This is code before main. I want these as globals.
unsigned const long bitmap_size = (ULONG_MAX/(sizeof(char)));
char bitmap[bitmap_size];
오류가 배열 차원의 플로우이다. 나는 내 프로세스가 많은 양의 데이터를 소비하도록 노력하고 있으며 그렇게하지 못하게하는 한계가있을 수 있음을 알고 있습니다. 문법 오류를 만들고 있는지 또는 커널에서 더 많은 자원을 요청해야하는지 궁금합니다. 또한 일부 클래스를 사용하여 비트 맵을 만드는 데 관심이 없습니다. 시간 내 주셔서 감사합니다.
EDIT ULONG_MAX는 사용중인 컴퓨터에 크게 의존합니다. 내 코드를 컴파일하고있는 특정 컴퓨터에서 42 억을 훨씬 넘었습니다. 전체적으로 적어도 메모리 할당을 위해 상수와 같은 상수를 사용하지 않을 것입니다.
그냥 'sizeof (char)'는 항상 1이므로 분단은 무의미합니다. –
32 비트 컴퓨터에서 4 기가 바이트의 메모리를 할당하려고한다는 것을 알고 있습니까? – fazo
결과 4 기가 바이트 메모리 – triclosan