This code is working perfectly with an array size 200. Any bigger than that and it gives a runtime error. But why is it giving a runtime error? Is it because I don't have enough memory or something else ?
This is the code:
void matrix_multip(int matrix1[2500][2500],int matrix2[2500][2500],int n)
{
    int i,j,resultmatrix[2500][2500],k;
    for(i=0;i<n;i++)
    {
       for(j=0;j<n;j++)
       {
           resultmatrix[i][j]=0;
           for(k=0;k<n;k++)
           {
               resultmatrix[i][j]=resultmatrix[i][j]+matrix1[i][k]*matrix2[k][j];
           }
        }
    }
}
int main()
{
  int matrix1[2500][2500],matrix2[2500][2500],n=100,i,j,k;
  for(k=0;k<12;k++)
  {
      for(i=0;i<n;i++)
      {
          for(j=0;j<n;j++)
          {
              matrix1[i][j]=rand();
              matrix2[i][j]=rand();
          }
      }
      clock_t start=clock();
      matrix_multip(matrix1,matrix2,n);
      clock_t end=clock();
      double seconds=(double)(end-start)/CLOCKS_PER_SEC;
      printf("matrix multiplacition for %dx%d took %lf seconds \n ",n,n,seconds);
      n=n+200;
  }
  return 0;
}
 
     
     
     
    