#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int m, n, count = 0, i, j;
scanf("%d %d", &m, &n);
char **matrix = malloc(sizeof(char *) * m);
for (i = 0; i < m; i++)
{ matrix[i] = malloc(sizeof(char) * (n + 1));
}
for(i = 0; i < m; i++)
{
scanf("%s", matrix[i]);
}
for (i = 0; i < m; i++)
{
for (j = 0; j < (n + 1); j++)
{
if (matrix[i][j] == '*')
{
printf("%c", matrix[i][j]);
continue;
}
else if (matrix[i][j] == '.')
{
if(j >= 1 && matrix[i][j - 1] == '*')
count++;
if(j <= 3 && matrix[i][j + 1] == '*')
count++;
if (i >= 1 && j >= 1 &&
matrix[i - 1][j - 1] == '*')
count++;
if (i >= 1 && matrix[i - 1][j] == '*')
count++;
if (i >= 1 && j <= 3 &&
matrix[i - 1][j + 1] == '*')
count++;
if (i <= 3 && j >= 1 &&
matrix[i + 1][j - 1] == '*')
count++;
if (i <= 3 && matrix[i + 1][j] == '*')
count++;
if (i <= 3 && j <= 3 &&
matrix[i + 1][j + 1] == '*')
count++;
matrix[i][j] = count;
printf("%d", matrix[i][j]);
count = 0;
}
}
printf("\n");
}
return 0;
}
심사에 나온 거랑 똑같이 출력되는 거 같은데 왜 틀렸다고 나오나요?....
문제의 조건을 보면 입력값의 범위는 3~10까지입니다.
다음과 같은 입력에 대해서도 동작해야 합니다
3 3
...
...
...
그러나 실행하면 세그멘테이션 오류가 발생합니다. 즉, 예상하지 못한 메모리 침범이 발생합니다.