使用 strcpy 通过指针运算符将字符串复制到结构的成员

using strcpy to copy a string to a member of a structure via the pointer operator

我正在尝试使用 strcpy 为作为结构成员的 char 数组设置值。如果可能的话,我想使用指针运算符来做到这一点。

struct my_struct{
  char foo[15];
} *a_struct_Ptr;

int main(){
  strcpy(a_struct_Ptr -> foo, "test");
return 0;
}

我可以编译这段代码,但是当我转到 运行 时,我遇到了分段错误。

此外,如果我不将结构定义为指针,它似乎也能正常工作,例如,以下代码可以正常工作...

struct my_struct{
  char foo[15];
}a_struct;

int main(){
  strcpy(a_struct.foo, "test");
  return 0;
}

虽然我希望能够用指针来做到这一点。 任何反馈表示赞赏。谢谢

许多人评论的问题是我没有为指向我的结构的指针分配内存。

在我的 strcpy 语句前面加上

a_struct_Ptr = (struct my_struct *) malloc(sizeof(struct my_struct));

我能够成功地将字符串文字复制到 my_struct 的 char 数组成员。

作为良好做法,我在结构使用完毕后添加了 free(a_struct_Ptr);