개발 및 연구 정보

[VC++]대용량 변수 선언시 스택 에러 해제

바보천사 2007. 10. 23. 18:30

예상 했던 것과 같이.....

지역 변수 및 전역 변수 선언에 따른 스택, 메모리 할당 차이 문제 때문에...

대용량의 지역 변수를 선언하면..컴파일에 문제는 없지만, 실행시 에러...

 

해결 하는 방법: 포인터 변수를 이용한 직접 메모리 할당..

예제 2차원 정수 변수 사용

=========================================================

var = (int **)malloc(sizeof(int*) * MAX_ARRAY_SIZE);

for(i=0;i<MAX_ARRAY_SIZE;i++)

{
   var[i] = (int *)malloc(sizeof(int) * MAX_ARRAY_SIZE);

 

// user code area

// usage: var[i][j]

}

=========================================================

주의 할점...꼭 free를 이용해서 메모리 해제를 해 줄 것

할당한 반대 순으로...

============

free(var[i]) 한 후에

free(var) 하면 됨

'개발 및 연구 정보' 카테고리의 다른 글

[펌]Webometrics - 웹 관계  (0) 2008.05.15
기초적인 수학 기호  (0) 2008.01.25
[VC++]구조체를 qsort 하기  (0) 2007.11.06
컴퓨터 관련 약어집  (0) 2007.11.06
VC++ 문자열 분리 알고리즘  (0) 2007.10.29