小编Ali*_*ice的帖子

为什么*struct_pointer = struct_variable与struct_pointer =&struct_variable的行为不同?

我对C++比较陌生,我正在尝试使用 - > with structs.我有这个代码,应该从结构中打印出名称和年龄.我知道 - >当变量是一个指针时使用,所以我试图用以下代码声明一个指向struct的指针:

typedef struct Person{
  string name;
  int age;
};

int main() {
  Person me;
  me.name = "name";
  me.age = 1;
  Person* me2;
  *me2 = me;
  cout << me2->name << "," << me2->age << endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码导致分段错误.

但是,如果我改变了

*me2 = me
Run Code Online (Sandbox Code Playgroud)

me2 = &me
Run Code Online (Sandbox Code Playgroud)

代码工作正常(打印出名称和年龄).

我不确定为什么这两行代码不相同.我以为我被允许用*更改指针的内容,但我不确定为什么这不起作用.请问有人帮我理解吗?

c++ struct pointers

-4
推荐指数
1
解决办法
88
查看次数

标签 统计

c++ ×1

pointers ×1

struct ×1