ori*_*kie 1 c pointers structure function
我在c中的指针和结构有点问题.
struct foo{
char a[15];
}
void asn_foo(struct foo *pa){
(*pa).a = "123";
}
main()
{
struct foo foo1[2], *pf;
pf = &(foo1[0]);
asn_foo(pf);
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试通过以下方式分配新值:
(*pa).a = "123";
Run Code Online (Sandbox Code Playgroud)
但是我在这一行上有错误"赋值不兼容".我究竟做错了什么?
您无法使用赋值运算符将新值分配给数组,您必须将字符串的内容复制"123"到数组中.使用strcpy这样做:
strcpy(pa->a, "123");
Run Code Online (Sandbox Code Playgroud)
另一个技巧是将数组包装在一个struct(就像你在这里完成的那样),并将一个结构分配给另一个结构,以便为数组赋值.
你可以这样做:
struct foo f1 = { "abc" };
struct foo f2 = { "123" };
f1 = f2;
Run Code Online (Sandbox Code Playgroud)
f1.a现在将举行"123".
另外,main应该返回一个int.