c语言指针向数组赋值问题

有 struct{ char a[64]; };主函数中用char *b得到数据怎样将值存到a中?新手求指点。
直接传值出错error: incompatible types when assigning to type ‘char[64]’ from type ‘char *’,难以解决

你这种错误就是不能从char* 赋值给char[64],这是很基础的指针问题,数组名代表数组的首地址是不允许修改的,指针可以修改,字符串数组复制可以一个字符一个字符赋值,也可以用memcpy()函数赋值,当然如果传入的是字符串的话还可以使用strcpy()函数
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-01-23

复制函数strcpy

// extern char *strcpy(char* dest, const char *src);
strcpy(sc.a, b);

本回答被提问者采纳
第2个回答  2013-10-25
先定义结构体名 如
struct *schar;
然后赋值;
strcpy(schar.a,b);