| [ CnUnix ] in KIDS 글 쓴 이(By): Gizmos ( 그림이) 날 짜 (Date): 1996년10월14일(월) 00시29분32초 KST 제 목(Title): [re]array size가 넘 크데요...흑흑 정적이든 동적이든 한꺼번에 64KB이상은 할당이 안됩니다.. 그게 바로 세그먼트 구조를 가지기 때문이죠. 코드 세그먼트, 데이터, 스택, 등등.. int a[256][256];하면 128KB가 되죠. int는 두 바이트니까. 방법은 char * far mem[N]; for( i=0; i< N; i++) { mem[i] = (char*)melloc( 256*256-1); } 이렇게 하고(256*256-1은, 만약 1을 빼지 않으면 역시 메모리 크기가 크다고 하기 때문) mem[0]에다가 데이터를 넣다고 넘치게 생겼으면 다시 mem[1]로 옮기는 방법 밖에는 없지요. 그래서 unix가 편하고 win95를 쓰나 보지요.. unix나 win95 또는 NT 등은 모두 flat memory 구조를 갖지요.. 하여간에 도스에서 그런 일을 하는 것은 좀 귀찮은 일이죠.. 그럼 이만.. |