CPP cin사용에서 런타임에러가나는데 소스좀 봐주세요(오류부분 표시함)

  • gugama
    gugama

    아래질문과 같은로직인데 이역시 io에서 오류가납니다..
    물론 로컬에서는 잘돌아가구요
    문제가 무엇인지 확인좀 부탁드립니다..

    #include <iostream>
    #include <string>
    using namespace std;
    void solver(string * board, int* row, int* col,int depth);
    
    int result=0;
    int main()
    {
        int caseNum=0;
        int row[255]={0,};
        int col[255]={0,};
        cin>>caseNum;
        string** cases=new string*[caseNum];
        for(int i=0;i<caseNum;i++)
        {
            cin>>row[i];
            cin>>col[i];
            cases[i]= new string[row[i]];
            for(int j=0;j<row[i];j++)
            {
                cin>>cases[i][j];//오류발생부분
            }
        }
        for(int i=0;i<caseNum;i++)
        {
            solver(cases[i],&row[i],&col[i],0);
            cout<<result<<endl;
            result=0;
        }
        return 0;
    }
    void solver(string * board,int* row,int* col, int depth)
    {
        for(int i=0;i<*row;i++)
        {
            for(int j=0;j<*col;j++)
            {
                if(board[i].at(j)=='.')
                {
                    if(i+1<*row&&j+1<*col&&board[i].at(j+1)=='.'&&board[i+1].at(j)=='.')
                    {
                            board[i].at(j)='#';
                            board[i].at(j+1)='#';
                            board[i+1].at(j)='#';
                            solver(board,row,col,depth+1);
                            board[i].at(j)='.';
                            board[i].at(j+1)='.';
                            board[i+1].at(j)='.';
                    }
                    if(i+1<*row&&j+1<*col&&board[i].at(j+1)=='.'&&board[i+1].at(j+1)=='.')
                    {
                            board[i].at(j)='#';
                            board[i].at(j+1)='#';
                            board[i+1].at(j+1)='#';
                            solver(board,row,col,depth+1);
                            board[i].at(j)='.';
                            board[i].at(j+1)='.';
                            board[i+1].at(j+1)='.';
                    }
                    if(i+1<*row&&j+1<*col&&board[i+1].at(j+1)=='.'&&board[i+1].at(j)=='.')
                    {
                            board[i].at(j)='#';
                            board[i+1].at(j)='#';
                            board[i+1].at(j+1)='#';
                            solver(board,row,col,depth+1);
                            board[i].at(j)='.';
                            board[i+1].at(j)='.';
                            board[i+1].at(j+1)='.';
                    }
                    if(i-1>=0&&j+1<*col&&board[i].at(j+1)=='.'&&board[i-1].at(j+1)=='.')
                    {
                            board[i].at(j)='#';
                            board[i].at(j+1)='#';
                            board[i-1].at(j+1)='#';
                            solver(board,row,col,depth+1);
                            board[i].at(j)='.';
                            board[i].at(j+1)='.';
                            board[i-1].at(j+1)='.';
                    }
                    if(i+1<*row&&j-1>=0&&board[i+1].at(j-1)=='.'&&board[i+1].at(j)=='.')
                    {
                            board[i].at(j)='#';
                            board[i+1].at(j-1)='#';
                            board[i+1].at(j)='#';
                            solver(board,row,col,depth+1);
                            board[i].at(j)='.';
                            board[i+1].at(j-1)='.';
                            board[i+1].at(j)='.';
                    }
                    return;
                }
            }
        }
        if(depth!=0)
            result=result+1;
        return;
    }
    

    10년 전
2개의 댓글이 있습니다.
  • Kureyo
    Kureyo

    입력이 문제가 아니라 진행과정에 런타임 에러가나는게 아닐까요? 입력은 별 문제 없어보입니다


    10년 전 link
  • Kureyo
    Kureyo

    물론 메모리를 해지안해주시기는 하지만 ㅠㅠ


    10년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.