when printing some values from this array, why does it print (0, 0, 0) between each line?
struct pixel **read_pixel_array(FILE *image, int pixel_array_offset, int width, int height)
{
    struct pixel **pixel_data = malloc(height * sizeof(struct pixel *));

    fseek(image, pixel_array_offset, SEEK_SET);

    for (int i = 0; i < height; i++)
    {
        pixel_data[i] = malloc(width * sizeof(struct pixel));

        for (int j = 0; j < width / 3; j++)
        {
            fread(&(pixel_data[i][j].blue), 1, 1, image);
            fread(&(pixel_data[i][j].green), 1, 1, image);
            fread(&(pixel_data[i][j].red), 1, 1, image);
        }
    }

    return pixel_data;
}