c++에서 1차원 배열 동적 할당은
int N=0; //입력받을 변수 선언
cin>>N;
int* arr=new int[N]; //int arr[N];
이런 식으로 값을 입력받아 할당할 수 있지만
2차원 배열에서 동적 할당은
int N=0,M=0; //입력받을 변수 선언
cin>>N>>M;
int** arr=new int*[N]; //행 할당해주고
for(int i=0;i<M;i++){
arr[i]=new int[M]; //열 할당해준다.
}
이런 식으로 이뤄진다.
여담으로 C에선 new키워드가 없으므로 malloc을 이용해야한다
이차원 배열을 동적으로 할당하기 위해서 이중포인터를 사용해보면
int** arrArr;
arrArr = (int**)malloc(sizeof(int*) * 10);
for (int i = 0; i < 10; i++) {
arrArr[i] = (int*)malloc(sizeof(int) * 10);
}
이런식으로 짜야한다.