Чтение 2d массива из двоичного файла и возврат указателя этого массива (в C)

Я пытаюсь написать функцию, которая возвращает указатель двумерного массива, считанного из двоичного файла. Хотя я компилирую без ошибок, всегда возникает ошибка сегментации, когда я пытаюсь распечатать один из элементов массива. Вот мой код:

double ** readArray(int rows, int cols)
{
   int i;
   double **myArray=malloc(rows*sizeof(double*));
   if (myArray){ 
      for (i=0; i < rows; i++)
      {
        myArray[i]=malloc(cols*sizeof(double));
      }
   }        

   FILE *data;
   data=fopen("matrix.bin", "rb");
   fread(myArray,sizeof(double),rows*cols,data);

   return myArray; 
}

int main ()
{
  int cols = 7;
  int rows = 15;
  double **myArray=readArray(rows, cols);
  printf("%f\n", myArray[1][0]);
  return 0; 
}

Ответы на вопрос(2)

Ваш ответ на вопрос