Jiwon-Hwang / All-About-Programming

Curiosity Collection (Grammar, Configuration, CS..)
0 stars 0 forks source link

2차원 배열 동적 할당, 해제, 초기화 #22

Open Jiwon-Hwang opened 3 years ago

Jiwon-Hwang commented 3 years ago

2차원 배열을 동적 할당으로 열었을 경우엔 다음과 같이 "초기화" 및 "할당"!! 시켜주자!

// 메모리 할당
short** ppsImage = new short*[nHeight];
for (int row = 0; row < nHeight; row++){
   ppsImage[row] = new short[nWidth];  // 각 행의 열 값들도 동적 할당 (메모리 열기)
   memset(ppsImage[row], 0, sizeof(short)*nWidth); // 메모리 공간을 0으로 채우기
}

// 메모리 해제 sol1
for (int row = 0; row < nHeight; row++){
   delete [] ppsImage[i]; 
}

// 메모리 해제 sol2
SAFE_DELETE_ARRAY(pusImage); // 1차원 배열일 때
SAFE_DELETE_VOLUME(ppsImage , nHeight); // 2차원 배열일 때 (배열명, 1차원 배열 수)

cf. 참고

https://felixblog.tistory.com/72
https://grandstayner.tistory.com/entry/C-2%EC%B0%A8%EC%9B%90-%EB%B0%B0%EC%97%B4-%EB%8F%99%EC%A0%81%ED%95%A0%EB%8B%B9