c++ 에서 new 를 이용하여 메모리 할당...

zipsinworm의 이미지

c++ 에서 new 를 이용하여 메모리를 할당할때
아래와 같이 하려고 하는데 오류가 발생합니다.
왜 그럴까요ㅠㅠ?

int row = 300;
int col = 400;
int *arr = NULL;
int **arr_ptr = NULL;
 
arr = new int *[row];
arr_ptr = new int [row*col];
for(int c=0;c<row;c++);
{
  arr[i] = &arr_ptr[i*col]; // 여기에서 발생하는듯;
}
memset(arr_ptr, 0, row*col*sizeof(int));
return(arr);

new 를 사용할때
arr = new int *[row]; 이렇게 사용해도 상관은 없는거죠?
(컴파일 오류는 발생안함)

라스코니의 이미지

int **arr_ptr 를 int * 가 아닌 int ** 로 선언한 이유를 잘 생각해 보셔야 할 듯.

zipsinworm의 이미지

제가 소스를 잘못 올렸네요.
초기화 하는부분은 아래입니다.
int *arr_ptr = NULL;
int **arr = NULL;