문제에 나와있는 예제는 문제없이 되는데 컴파일시 에러가 발생하네요
어느부분에서 에러가 발생하는지 찾을 수가 없어 질문남깁니다.
int r;
int **dmz;
int **mine;
int **answer;
int row, col;
int U, D, L, R;
bool match() {
int **mine2;
mine2 = (int)calloc(row,sizeof(int));
for (int i = 0; i < row; i++) {
mine2[i] = (int*)calloc(col,sizeof(int));
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
if (mine[i][j] == 1) {
if (i - 1 >= 0)
mine2[i - 1][j] += U;
if (i + 1 < row)
mine2[i + 1][j] += D;
if (j - 1 >= 0)
mine2[i][j - 1] += L;
if (j + 1 < col)
mine2[i][j + 1] += R;
}
}
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
if (dmz[i][j] != mine2[i][j]) {
free(mine2);
return false;
}
}
}
free(mine2);
return true;
}
void checkMine(int i,int j) {
if (match() == true) {
for (int i = 0; i < row; i++)
for (int j = 0; j < col; j++)
answer[i][j] = mine[i][j];
return;
}
if (i >= row)
return;
if (i >= row && j >= col)
return;
mine[i][j] = 1;
//다시 호출
if (j == col - 1)
checkMine(i + 1, 0);
else
checkMine(i, j + 1);
mine[i][j] = 0;
if (j == col - 1)
checkMine(i + 1, 0);
else
checkMine(i, j + 1);
}
int main(void) {
int test_case;
cin >> test_case;
while (test_case > 0) {
cin >> row>> col;
cin >> U >> D >> L >> R;
dmz = (int**)malloc(sizeof(int)*row);
mine = (int**)malloc(sizeof(int)*row);
answer = (int**)malloc(sizeof(int)*row);
for (int i = 0; i < row; i++) {
dmz[i] = (int*)malloc(sizeof(int)*col);
mine[i] = (int*)malloc(sizeof(int)*col);
answer[i] = (int*)malloc(sizeof(int)*col);
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cin >> dmz[i][j];
mine[i][j] = 0;
}
}
checkMine(0,0);
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << answer[i][j];
}
cout << endl;
}
free(mine);
free(dmz);
free(answer);
test_case--;
}
return 0;
leejh6182
문제에 나와있는 예제는 문제없이 되는데 컴파일시 에러가 발생하네요
어느부분에서 에러가 발생하는지 찾을 수가 없어 질문남깁니다.
int r;
int **dmz;
int **mine;
int **answer;
int row, col;
int U, D, L, R;
bool match() {
int **mine2;
mine2 = (int)calloc(row,sizeof(int));
for (int i = 0; i < row; i++) {
mine2[i] = (int*)calloc(col,sizeof(int));
}
void checkMine(int i,int j) {
}
int main(void) {
int test_case;
}
8년 전