我正在尝试使用 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);
。
关于c - 使用 strcpy 通过指针运算符将字符串复制到结构的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43444299/