Проблема кодирования с использованием двумерного массива структур внутри другой структуры в C

Я работаю с двумерным массивом структур, который является частью другой структуры. Это не то, с чем я многое сделал, поэтому у меня проблема. Эта функция завершается сбоем после прохождения «тестового» цикла for ближе к концу. Он правильно печатает одну строку, прежде чем обнаружит ошибки.

Части моего кода, которые считывают данные в фиктивный двумерный массив структур, работают просто отлично, поэтому мой массив должен быть частью другой структуры (imageStruct).

Любая помощь будет принята с благодарностью!

/*the structure of each pixel*/
typedef struct
{
 int R,G,B;
}pixelStruct;

/*data for each image*/
typedef struct
{ 
 int height;
 int width;
 pixelStruct *arr; /*pointer to 2-d array of  pixels*/
} imageStruct;


imageStruct ReadImage(char * filename)
{
 FILE *image=fopen(filename,"r");
 imageStruct thisImage;

        /*get header data from image*/

        /*make a 2-d array of of pixels*/
 pixelStruct imageArr[thisImage.height][thisImage.width];

        /*Read in the image. */

        /*I know this works because I after storing the image data in the
          imageArr array, I printed each element from the array to the
          screen.*/

 /*so now I want to take the array called imageArr and put it in the
   imageStruct called thisImage*/

  thisImage.arr = malloc(sizeof(imageArr));
  //allocate enough space in struct for the image array. 

 *thisImage.arr = *imageArr; /*put imageArr into the thisImage imagestruct*/

//test to see if assignment worked: (this is where it fails)

 for (i = 0; i < thisImage.height; i++)
 {
  for (j = 0; j < thisImage.width; j++)
  {
   printf("\n%d: R: %d G: %d B: %d\n", i ,thisImage.arr[i][j].R,
          thisImage.arr[i][j].G, thisImage.arr[i][j].B);
  }
 } 

 return thisImage;
}

(В случае, если вам интересно, почему я использую фиктивный массив в первую очередь, это потому, что когда я начал писать этот код, я не мог понять, как сделать то, что я пытаюсь сделать сейчас.)

РЕДАКТИРОВАТЬ: Один человек предположил, что я не правильно инициализировал мой 2-мерный массив в typedef для imageStruct. Может ли кто-нибудь помочь мне исправить это, если это действительно проблема?

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

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