struct pixel **read_pixel_array(FILE *image, int pixel_array_offset, int width, int height) {
        struct pixel **pixels = malloc(sizeof(struct pixel*) * height);
        for (int i = 0; i < height; i++) {
                pixels[i] = malloc(sizeof(struct pixel) * width);
        }

        for (int m = 0; m < height; m++) {
                for (int n = 0; n < width; n++) {
                        fread(&pixels[m][n], sizeof(struct pixel), pixel_array_offset, image);
                }
        }

        return pixels;
}
First, allocate space for m `struct pixel *` values, where m is the height of the image. Each pointer will eventually point to one row of pixel data. For each pointer you just allocated, initialize it to point to Use the given file and pixel_array_offset to initialize the actual struct pixel values. Assume that `sizeof(struct pixel) == 3`, which is consistent with the bitmap file format. Return the address of the first `struct pixel *` you initialized.