使用 fopen 时出现段错误

Segfault when using fopen

我在使用 fopen 函数时出现分段错误。 如果我不在结构中使用 file 则不会发生错误。 我猜段错误来自使用结构

中的file
int     main(int argc, char **argv)
{
    t_paint     *paint;

    if (argc != 2)
    {
        write (1, "Error: argument\n", 16);
        return (1);
    }
    paint->file = fopen(argv[1], "r");
    if (paint->file == NULL || parsing(paint))
    {
        write(1, "Error: Operation file corrupted\n", 32);
        free(paint->map);
        fclose(paint->file);
        return (1);
    }
    output(paint);
    fclose(paint->file);
    free(paint->map);
    return (0);
}

t_paint

typedef struct      s_paint
{
    char            *map;
    int             widthMap;
    int             heightMap;
    float           firstX;
    float           firstY;
    float           w;
    float           h;
    char            typeFile;
    char            background;
    char            filler;
    FILE            *file;
}                   t_paint
t_paint     *paint;

if (argc != 2)
{
    write (1, "Error: argument\n", 16);
    return (1);
}
paint->file = fopen(argv[1], "r");

您修改了 paint 指向的对象的 file 成员。但是 paint 没有指向任何东西——你从来没有给它赋值或创建 t_paint.

的实例