Why does this give the warning incompatible integer to pointer conversion passing 'unsigned char' to parameter of type 'void *' [-Wint-conversion] ?
struct pixel **read_pixel_array(FILE *image, int pixel_array_offset, int width, int height) {
    int m = height;
    int n = width;
    fseek(image, pixel_array_offset,SEEK_SET);
    unsigned char **arr = malloc(sizeof(struct pixel *) * m);
    for(int i=0;i<m;i++) {
        arr[i] = malloc(sizeof(struct pixel) * 3 * n);
        int j=0;
        while(j< 3 * n) {
            fread(arr[i][j], sizeof(unsigned char), 1, image);
            fread(arr[i][j+1], sizeof(unsigned char), 1, image);
            fread(arr[i][j+2], sizeof(unsigned char), 1, image);
            j += 3;
        }
    }
}