Perchè mi da questo errore???

codice:
#include<stdio.h>

#define M 100

int getline(char[], FILE*);

void riempiuno(int[][], int[][]);

int carica(char *, char[][]);

void output (char[][] , int[][] , int[][], int);

void itoa(int, char[]);

void reverse (char[]);

void ricorda(char[][], int[][], int);

void ricorda1(char[][], int[][], int);



main(int argc, char *argv[])

{       

         int q;

         char matrice [M] [M];

         int  ver[M][4],

              ori[M][4];

         char     finale[q][q];

         riempiuno(ori,ver);

         q=carica(argv[1], matrice);

         ricorda(matrice, ori, q);

         q=carica(argv[2], matrice);

         ricorda1(matrice, ver, q);

         output(finale, ori, ver, q);

         

}         

         

         

         

         

int carica (char *input, char matrice[][])

{

    FILE *fin;

    fin=fopen(input, "r");

    char line[M];

    int r,c,len;

    

    while((len=getline(line, fin))>0)

        for(r=0; r<len; r++)

            for(c=0; c<len; c++)

                matrice[r][c]=line[c];

    return len;

}



int getline(char line[] , FILE *f )

{

    int i=0,c;

    while((c=getc(f))!='\0' && c!= '\n')

        if (c=='\n')

            line[i++]=c;

        line[i]='\0';

    return i;

}



void ricorda( char matrice[][], int ori[][], int e)

{    

     int q,w,r,i=0,c;

     for (r=0; r<e; r++)

         {

               for (c=0; c<e; c++)

                   {

                       if(matrice[r][c]== 'x' && matrice [r][c-1]!='x')

                           w=c;

                       if(matrice[r][c]== 'x' && matrice [r][c+1]!= 'x')

                           {

                                          q=c;

                                          ori[i][0]=r;

                                          ori[i][1]=w;

                                          ori[i][2]=q-w;

                                          i++;

                           }

                       

         }

}

                 

void ricorda1( char matrice[][], int ori[][], int e)

{    

     int q,w;

     int i=0;

     for (r=0; r<e; r++)

         {

               for (c=0; c<e; c++)

                   {

                       if(matrice[c][r]== 'x' && matrice [c][r-1]!='x')

                           w=r;

                       if(matrice[c][r]== 'x' && matrice [c][r+1]!= 'x')

                           q=r;

                       ori[i][0]=c;

                       ori[i][1]=w;

                       ori[i][2]=q-w;

                       i++;

                   }

                       

         }

}     



void riempiuno(int ori[][], int ver[][])     

{

     for(r=0; r<M; r++)

         for(c=0; c<3; c++)

         {

              ori[r][c]=-1;

              ver[r][c]=-1;

         }

}



void output(char matrice[][], int ori[][], int ver[][],int e)





{    int j;

     char slun[2];

     for(r=0; r<e; r++)

         for(c=0; c<e; c++)

            matrice[r][c]= '.';

     

     

     for(r=0; r<M; c++)

         for(c=0; c<3; c++)

             {

                  if(ori[r][c]>0)

                      {

                          matrice[ori[r][0]][ori[r][1]]='O';

                          itoa(matrice[r][2],slun);

                          for(j=0;slun[j]!='\0'; j++);

                              matrice[ori[r][0]][ori[r][2+1+j]]=slun[j];

                      }

             }

             

      for(r=0; r<M; c++)

         for(c=0; c<3; c++)

             {

                  if(ver[r][c]>0)

                      {

                          matrice[ver[r][0]][ver[r][1]]='V';

                          itoa(matrice[r][2],slun);

                          for(j=0;slun[j]!='\0'; j++);

                              matrice[ori[r][0]][ori[r][2+1+j]]=slun[j];

                      }

             }

}



void itoa(int n, char s[])

{

  int i=0;



  do{

     s[i++]=n%10 + '0';

     }while((n/=10)>0);

  s[i]='\0';

  reverse(s);



}







void reverse(char s[]){

 int c,i,j;



 for(i=0, j=strlen(s)-1; i<j; i++,j--) {

          c = s[i];

          s[i]=s[j];

          s[j]=c;

          }



}