배열 동적 할당 시 발생하는 에러!
배열 메모리를 열기만 하고, 값을 NULL(nullptr)로 초기화를 시켜주지 않고서
값을 뒤에서 넣어줘서 생기는 문제...
즉, 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