<malloc, calloc, free 사용..(C문법)......>
1. 할당.(10*20크기를 가지는 동적 배열)
unsigned char** Buffer; //첫주소를 물고있을 2차원 포인터변수 선언.
Buffer = (unsigned char**)calloc(10, sizeof(unsigned char *));
for(unsigned int i=0; i < 10; i++) //calloc은 자동으로 동적 배열을 0으로 초기화.
Buffer[i]=(unsigned char*)calloc(20, sizeof(unsigned char));
2. 해제.
for(unsigned int i=0; i < 10; i++)
free(Buffer[i]); //1차원 포인터에 물려있는 2차원 배열들부터 해제.
free(Buffer); //전체를 물고있는 포인터 해제.
<new, delete 사용..(C++문법).......>
1. 할당.(10*20크기를 가지는 동적 배열)
unsigned char **Buffer;
Buffer = new unsigned char *[10];
for(i=0; i<10; i++)
Buffer[i] = new unsigned char[20];
2. 해제.
for(i=0; i<10; i++)
delete [] Buffer[i];
delete Buffer;
좋은 예제가 될것 같아서 퍼왔습니다.
Expression : _CrtlsValidHeapPointer(pUserData)
우와...
위와 같은 오류로 고프과제에서 이 문제 때문에 하루 종일 삽질 중이였는데...
한방에 해결됐네요.....
1차원 포인터에 물려 있는 2차원 배열들부터 해제!!!!
초강추!!^^
속이 다 시원하군요~ㅋㅋ
'프로그래밍' 카테고리의 다른 글
fgets함수로 입력받을시 엔터키 지우는 방법 (0) | 2008.04.25 |
---|---|
vc++ 6.0 에서 gotoxy(), clrscr() 사용하는방법 (0) | 2008.04.25 |
2차 배열 초기화 (0) | 2008.04.25 |
링크드리스트 모든 동적할당 메모리 해제 함수 (0) | 2008.04.25 |
fwrite(),fread() (0) | 2008.04.25 |