黑马程序员技术交流社区
标题:
怎么会报错呢
[打印本页]
作者:
a18504725177
时间:
2015-3-28 11:31
标题:
怎么会报错呢
请问 fen[0].name = "rossfs";为什么会报错?。。我定义个一个结构体rank,然后定义个一个数组,储存结构体。结构体成员变量name要是改成char *name就可以实现。现在用char name[10]分配出一个10字节准备存放结构体里的name。之后 fen[0].name = "wwcd";就赋值失败了。。难道要一个一个定义??fen[0].name[0]='w'?..??何解:'(
#include <stdio.h>
int main()
{
struct Rank
{
int no;
int score;
char name[10];
};
struct Rank fen[10];
fen[0].no = 1000;
fen[0].score = 1;
fen[0].name = "wwcd";
printf("%d--%d--%s\n",fen[0].no,fen[0].score,fen[0].name);
}
作者:
oucding
时间:
2015-3-28 22:09
你这是对字符串赋值问题没弄清楚,首先不能用字符串给字符数组赋值,如:char name[10];name = "Jake"; 所以你程序中的fen[0].name = "wwcd";这句话肯定是错误的你可以试试:
struct Rank
{
int no;
int score;
char *name;
};
struct Rank fen[10];
fen[0].no = 1000;
fen[0].score = 1;
fen[0].name = "wwcd";
printf("%d--%d--%s\n",fen[0].no,fen[0].score,fen[0].name);
}
作者:
魏建国
时间:
2015-3-29 02:14
好东西,学习了一下
作者:
Fench
时间:
2015-3-30 15:13
1楼正解. 对数组进行赋值只能在定义的时候初始化赋值, 比如: char name[10] = "jack"; 是可以的, 但是 char name[10]; name="jack"就是错误的. 就像你说的用字符串指针就完全OK, 如果以一定要用数组的话,可以使用strcpy函数来赋值. 如: strcpy(name, "jack");
作者:
wupeng756
时间:
2015-3-30 15:46
很简单一句话 请用 strcpy
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2