처음에 짰던 코드: error
2차원 배열은 아래와 같이 동적할당을 할 수 없다.
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int* arr = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> arr[i][j];
}
}
int r, c;
cin >> r >> c;
r--;
c--;
int s = arr[r][c];
for (int i = r; i < n; i++) {
for (int j = c; j < n; j++) {
if (arr[r][c] < s) {
arr[r][c] = 0;
}
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
return 0;
}
chatGPT를 통해 고친 코드:
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
// Allocate memory for an array of int pointers (rows)
int** arr = new int*[n];
// Allocate memory for each row
for (int i = 0; i < n; i++) {
arr[i] = new int[n];
}
// Input values into the 2D array
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> arr[i][j];
}
}
// Deallocate memory for each row
for (int i = 0; i < n; i++) {
delete[] arr[i];
}
// Deallocate memory for the array of int pointers
delete[] arr;
return 0;
}