我正在测试我们在学校做的事情。我有一个结构MyStruct
和两个指针,但是当我想使用指针时,我得到两个指针的错误:
未初始化的局部变量'p'使用
struct MyStruct {
int id;
double value;
};
MyStruct *p, *q;
double z = 10;
double y = 16.17;
(*p).value = z;
(*q).value = y;
cout << (*p).value << " " << (*q).value << endl;
答案 0 :(得分:1)
您需要为p和q结构分配内存。你正在做的是尝试访问一些指向任何地方的指针。
添加这两行,并且在您使用它们时不要忘记删除p和q
p = new MyStruct;
q = new MyStruct;
答案 1 :(得分:1)
您的p
和q
指针尚未初始化,因此尝试取消引用它们是未定义的行为!
如果你真的想在这里使用指针,请确保你指向有效的内存。例如:
struct MyStruct {
int id;
double value;
};
MyStruct *p = new MyStruct, *q = new MyStruct; // <- allocate memory with `new`
double z = 10;
double y = 16.17;
(*p).value = z;
(*q).value = y;
cout << (*p).value << " " << (*q).value << endl;
delete p; // <- free memory with `delete`
delete q;