|
이용태 님이 쓰신 글 :
: 배열을 할당하는데 시간이 많이 걸리더군요...
:
: 속도를 요하는 작업을 수행해야 하는데... 배열 할당하는데 대부분의 시간을 투자하다보니... 원하는 성능이 나오지 않습니다..
:
: 제가 사용한 방법은 밑의 소스와 같은데요...
:
: 배열 포인터(10000개짜리)를 생성한 후, 5000개짜리 배열을 동적으로 각각 생성시켰습니다.
:
: BYTE *pData[10000]; //원본 데이터
: for(int i = 0; i < 10000; i++)
: {
: if(pData[i] != NULL)
: delete [] pData[i];
:
: pData[i] = new BYTE[5000];
: }
:
: 시간 아주 많이 걸립니다..ㅡㅡ;;;;
:
: 혹시 10000개짜리 pData 포인터에 5000개짜리 배열을 한방에 생성시키는 방법이 있지않을까요?
:
: 만약 이것이 불가능하다면... 다른 방법은 무엇이 있을까요?
:
: 답변 부탁드립니다...
5000 byte X 10000 = 50000000 Byte 를 한꺼번에 생성시키고
pData[i] 에다가는 단지 할당된 메모리 번지에서 5000씩 증가시키면서 포인터만 넘겨줍니다.
메모리를 릴리즈 할때는 처음 할당 받았던 놈 하나만 Free하면 되고
pData[i] 는 몽땅 NULL로 채우면 될 듯...
new 연산자로 메모리를 할당 받으면 연속한 공간에 할당되는지 모르겠네요..
신경쓴지 오래되서리... 햇갈리네요.. ㅎ
|