变量可以在设置之前使用



当我创建指向结构example *e的指针时,我正在获得"变量可以在设置之前使用"。如果我用一个变量代替example e,我不会得到错误。这是因为我没有为指针分配内存吗?

typedef struct example {
    int a;
}example;
void test (){
    example *e;
    e->a=1;
    printf_all("val %d",e->a);
}

e没有指向任何东西。您正在使用一个未初始化的指针。您"设置"了一个无效的指针,然后试图访问它。

你的指针应该指向一个example实例。例如:

example exampleInstance;
example * examplePointer = &exampleInstance;

指针的值不确定。结果程序有未定义的行为。

你应该为一个类型为example的对象分配内存,在那里你要写数据。例如

example *e = malloc( sizeof( *e ) );
e->a = 1;

在这种情况下,你应该释放内存,当它不再需要。

example obj;
example *e = &obj;
e->a = 1;

相关内容

  • 没有找到相关文章

最新更新