struct pixel **read_pixel_array(FILE *image, int pixel_array_offset, int width, int height) {

    // 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.
    struct pixel* rows[height];
    
    for (int i = 0; i < height; i++){
    	rows[i] = (struct pixel*)malloc(width);
    }
    
    // Initialize actual struct values
    for (int i = 0; i < height; i++) {
    	for (int j = 0; j < width; j++) {
    		
    		fread(rows[i][j]->blue, 1, 1, image);
    		fread(rows[i][j]->green, 1, 1, image);
    		fread(rows[i][j]->red, 1, 1, image);
    		
    	}
    }
    
    return rows;

}