아래와 같이 코드를 작성하여 비주얼 스튜디오에서 실행시켜 보니 정상적으로 작동하고, 제대로된 답이 나옵니다. 근데 막상 검사창에서는 실행할 수 없다는 답이 나옵니다. 혹시 어떤 문제인지 알 수 있을까요?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main() {
int row, col;
scanf("%d %d", &row, &col);
char** arr = malloc(sizeof(char*) * row);
for (int i = 0; i < row; i++) {
arr[i] = malloc(sizeof(char) * (col + 1));
}
for (int i = 0; i < row; i++) {
scanf("%s", arr[i]);
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < col + 1; j++) {
if (arr[i][j] != '*') arr[i][j] = '0';
else continue;
}
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < col + 1; j++) {
if (arr[i][j] == '*') {
for (int h = i - 1; h <= i + 1; h++) {
for (int k = j - 1; k <= j + 1; k++) {
if (h < 0 || k < 0 || h > row || k > col || arr[h][k]=='*') continue;
else {
arr[h][k] += 1;
}
}
}
}
else continue;
}
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
if (j == col - 1) printf("%c\n", arr[i][j]);
else printf("%c", arr[i][j]);
}
}
free(arr);
}
실행하고 입력을
3 3
...
...
..*
이렇게 했을 때 다음과 같이 예외가 발생합니다.
배열 접근이 잘못된 것으로 보입니다.
포럼 상단 오른쪽에서 38.8로 검색하면 이전 질문과 답변을 볼 수 있습니다.
정상적으로 실행되지 않는 코드는 심사를 통과하지 못합니다.