does the code properly implement a 2D array for struct pixel and malloc space 
struct pixel *pixel_array = malloc(height*sizeof(struct pixel *));
if (pixel_array == NULL){
    perror("Unable to malloc space");
    exit(1);
}
for(int i = 0; i < height; i++){
    pixel_array[i] = malloc(width*sizeof(struct pixel));
    if (pixel_array[i] == NULL){
        perror("Unable to malloc space");
        exit(1);
    }
}