变量可以在设置之前使用
variable may be used before being set
当我创建指向结构 example *e
的指针时,我得到 "variable may be used before being set"。如果我改用变量 example e
,我不会收到错误。是不是我没有给指针分配内存?
typedef struct example {
int a;
}example;
void test (){
example *e;
e->a=1;
printf_all("val %d",e->a);
}
指针具有不确定的值。结果,该程序具有未定义的行为。
您应该为要写入数据的 example
类型的对象分配内存。例如
example *e = malloc( sizeof( *e ) );
e->a = 1;
在这种情况下,您应该在不再需要时释放内存。
或者
example obj;
example *e = &obj;
e->a = 1;
e
没有指向任何东西。您正在使用未初始化的指针。你 "set" 通过一个无效的指针,然后试图访问它。
您的指针应指向一个 example
实例。例如:
example exampleInstance;
example * examplePointer = &exampleInstance;
当我创建指向结构 example *e
的指针时,我得到 "variable may be used before being set"。如果我改用变量 example e
,我不会收到错误。是不是我没有给指针分配内存?
typedef struct example {
int a;
}example;
void test (){
example *e;
e->a=1;
printf_all("val %d",e->a);
}
指针具有不确定的值。结果,该程序具有未定义的行为。
您应该为要写入数据的 example
类型的对象分配内存。例如
example *e = malloc( sizeof( *e ) );
e->a = 1;
在这种情况下,您应该在不再需要时释放内存。
或者
example obj;
example *e = &obj;
e->a = 1;
e
没有指向任何东西。您正在使用未初始化的指针。你 "set" 通过一个无效的指针,然后试图访问它。
您的指针应指向一个 example
实例。例如:
example exampleInstance;
example * examplePointer = &exampleInstance;