순환호출 문제 푸는데 아래 그림처럼 예외가 발생했다면서 튕겨버림...
return img->arr[x][y]; 이 문장에서 멈추는데 이유를 몰겠음
단순히 -를 @로 채우는 문제인데 이걸 못하네 ㅆㅂ,,,
ㅈ같다... 대체 내가 뭘 잘못한건지도 모르겠고 비슷한 에러 검색해봐도 아무 정보도 없고 어캐하노...
프린이 우러요 제발 도와조
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define fill '@'
#define wall 'l'
#define line '-'
typedef struct arr
{
int col;
int row;
char** arr;
}ARR;
char start_read(ARR* img,int x, int y)//배열 불러오기
{
return img->arr[x][y];
}
void fill_gol(ARR* img,int x, int y)//x,y위치를 @로 채우기
{
img->arr[x][y] = fill;
}
void print_arr(ARR* img)//배열 출력
{
for (int i = 0; i < img->col; i++)
{
for (int j = 0; j < img->row; j++)
{
printf("%c", img->arr[i][j]);
}
}
}
void flood_fill(ARR* img, int x, int y)//채우기함수
{
if (start_read(img,x,y) == line)
{
fill_gol(img,x, y);
flood_fill(img, x - 1, y);
flood_fill(img, x, y - 1);
flood_fill(img, x + 1, y);
flood_fill(img,x, y + 1);
}
}
void flood_print()//과정 기록 함수
{
}
int main(int agrv, char* argc[])
{
ARR img;
img.col = atoi(argc[1]);
img.row = atoi(argc[2]);
char* filename = argc[3];
FILE* fp;
fp = fopen(filename, "r+");
img.arr = (char**)calloc(img.col, sizeof(char*));
for (int i = 0; i < img.col; i++)
{
img.arr[i] = (char*)calloc(img.row, sizeof(char));
}
if (fp == NULL)
{
printf("파일 읽기 오류 ");
return -1;
}
int i = 0;
while (getc(fp) != EOF)
{
for (int j = 0; j < img.row; j++)
{
fscanf(fp, "%c", &img.arr[i][j]);
}
i++;
}
back:
print_arr(&img);
int x;
int y;
printf(" Enter the row number : ");
scanf_s("%d", &x);
printf("Enter the column number : ");
scanf_s("%d", &y);
if (img.arr[x][y] != '-')
{
printf("시작할 수 없는 위치임. 다시 입력 ㄱ ");
goto back;
}
flood_fill(&img,x, y);
print_arr(&img);
fclose(fp);
}
F5 눌러보며 디버깅ㄱㄱㅇㅇ
디버깅해서 나온게 저 스샷임,,, 걍 예외가 발생했다고만 뜸 그래서더 화남
아 return img->arr[x][y]; 이 문장이 예외발생이래
아이씨바 디버깅 이새끼 자꾸 틀려ㅕㅆ다고만 하고 해결책을 안줘 나도 모른단말이다
중단점해놓고 arr에 뭐 들어가있는지 확인ㄱ - dc App
printf로 확인하니까 "-" 문자는 제대로 나옴,,