|
쌩초보 님이 쓰신 글 :
: 안녕하세요..쌩초보입니다.
: 제가 이제 빌더로 하드웨어 제어가 가능하게되었는데요.
:
: 하드웨어로 입수되는 데이터를 배열로 처리하려는데
:
: 배열의 구성은 일단 구조체로 약 12byte의 각종 변수가 포함되고
: 각 배열은 0.001sec에 하나씩 1시간 분량(36,000,000개)이 필요합니다.
: byte수로 따지자면 43.2MByte정도 되겠네요.
:
: 근데..DATA[36000000] .이렇게 선언하니까..바로 에러납니다.
:
: [사실 저도 이정도의 배열이 놀랍습니다만]
:
: 어떻게 해야 이정도의 배열을 메모리 상에서 구현할 수 있을까요?
:
: 고수님의 지도를 바라는 쌩초보입니다....
: 부디 고수님의 한수 가르침을.....
그 정도 크기라면 메모리상에 배열로 잡기보다는
파일 처리를 하는 게 원칙이 아닐까요?
만약 억지로 메모리에 올리려면
TList를 사용하시거나,
STL의 vector 를 쓰시는 방법도 좋을 듯.
메모리 할당을 STL 자체에서 하기 때문에 신경 쓸 필요가 없습니다.
예를 들어
vector<DATA> HyperUltraArray(36000000);
for (int i = 0; i < 36000000; i++) {
cin >> HyperUltraArray[i]; // 물론 operator>>(istream&, DATA&) 이 오버로딩이 되어 있어야 겠죠?
}
|