struct pixel **read_pixel_array(FILE *image, int pixel_array_offset, int width, int height) {
        int m = height;
        struct pixel *pointers = malloc(sizeof(struct pixel) * m);
        for (int i = 0; i < m; i++){
                pointers[i] = pointers[i*3];
                for (int j = 0; j < width; j++){
                        fseek(image, pixel_array_offset, SEEK_SET);
                        fread(pointers[i][j], 3, 1, image);
                        pixel_array_offset = pixel_array_offset + 3;
                }
        }
        return **pointers;
}


Read in pixel array by following these instructions:
 *
 * 1. 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.
 * 2. For each pointer you just allocated, initialize it to point to 
 *    heap-allocated space for an entire row of pixel data.
 * 3. 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.
 *    NOTE: We've tested this assumption on the Teaching Lab machines, but 
 *    if you're trying to work on your own computer, we strongly recommend 
 *    checking this assumption!
 * 4. Return the address of the first `struct pixel *` you initialized.