结构体数组赋值错误的问题
定义了一个结构体,定义两个成员
struct BASIC_DATA
{
……
char user[32];
char password[32];
};
struct BASIC_DATA basic_dat;
用for 给他们赋值:
for(int i=0;i<32;i++)//测试加入的代码
{
basic_dat.user[i]=i; //测试加入的代码
basic_dat.password[i]=31-i;//测试加入的代码
}
出来的结果是:basic_dat.user、basic_dat.password 所以元素都为0 这是为什么????
[解决办法]
你的两个结构体变量都是char,赋值i和31-i都是int,是不是需要做一下类型转换?
[解决办法]
- C/C++ code
#include<stdio.h>struct BASIC_DATA{ int user[32]; int password[32];};int main(void){ struct BASIC_DATA basic_dat; int i; for(i = 0; i < 32; i++)//测试加入的代码 { basic_dat.user[i] = i; //测试加入的代码 basic_dat.password[i] = 31-i;//测试加入的代码 } for(i = 0; i < 32; i++) { printf("%d %d\n",basic_dat.user[i], basic_dat.password[i]); } return 0;}
[解决办法]
我打印出来有值啊
[解决办法]
basic_dat.user第一个字符为0,空字符,以字符串没有输出;
basic_dat.password第一个字符为单元分隔符,后面空格,...,后面都是特殊字符,以字符串输出不会显示。
如果单独以%d格式是可以输出的。