순환호출 문제 푸는데 아래 그림처럼 예외가 발생했다면서 튕겨버림...

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);

}