如何在函数内部修改结构体的char值?
include <stdio.h>
struct st2{
char name[20];//姓名
int age;//年龄
double c;//double数
};void init(struct st2* temp){
temp->age = 10;
temp->name = "zhangsan";//此处报错
temp->c = 3.1415926;
}int main(){
struct st2 a = { 0 };
init(&a);
printf("%d", a.age);
printf("%s", a.name);
}
回复
1个回答

test
2024-07-13
先说必要的:
- 如果有修改行为,就不要使用
const
修饰,这会导致编译警告。 - 直接给
char[]
赋值一个字符串常量的行为,只能在初始化时使用。而后想要以类似的方式修改char[]
,请使用strcpy()
。
其他的:
a
声明时,缺少了struct
关键字。- 想使用
init()
修改结构体,那么请传递指针。
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容