Ctrl + F5 키로 명령 프롬프트 실행 후 주어진 표준 입력값을 입력하면 출력되는 값이 표준 출력값과 일치하는데 '실행되지 않는 코드'라며 심사 통과가 되지 않아서 어떤 부분이 문제인지 파악하기가 어려워 질문드립니다.
작성한 코드는 다음과 같습니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int m, n;
scanf("%d %d", &m, &n);
char **matrix = malloc(sizeof(char *) * m);
for (int i = 0; i < m; i++)
{
matrix[i] = malloc(sizeof(char) * (n + 1));
}
memset(matrix, 0, sizeof(char));
for (int i = 0; i < m; i++)
{
scanf("%s", matrix[i]);
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (matrix[i][j] == '*')
continue;
else
{
matrix[i][j] = 0;
for (int y = i - 1; y <= i + 1; y++)
{
for (int x = j - 1; x <= j + 1; x++)
{
if (y < 0 || x < 0 || y >= m || x >= n)
continue;
else if (matrix[y][x] == '*')
matrix[i][j] += 1;
}
}
}
}
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (matrix[i][j] == '*')
printf("*");
else
printf("%d", matrix[i][j]);
}
printf("\n");
}
for (int i = 0; i < m; i++)
{
free(matrix[i]);
}
free(matrix);
return 0;
}
https://glot.io/snippets/fa9hf77dcx
메모리 접근 에러가 발생해서 프로그램이 비정상적으로 실행 종료됩니다. 정답은 출력되지만, 비정상적으로 종료되는 프로그램은 잘못된 프로그램이므로 정답으로 인정하지 않습니다.
에러 없는 코드를 작성하세요.