结构体里面数组初始化问题
typedef struct{
int data_len;
unsigned char data[256];
} kb_ipc_magcard_track_info ;
int Exec_Get_Mag_Data(HANDLE fd,kb_ipc_magcard_track_info tracks[3])
读出的tracks[j].data[i]全是烫烫.....,网上说是数组没有初始化造成的,是这样的吗?是的话怎么初始化呢?谢谢!
[解决办法]
既然是在 C++ 里, 就使用构造函数撒
[解决办法]
memset(tracks[j].data[i], 0, 256);
[解决办法]
你的结构体里面的数组是未初始化的,所以里面的东西是未定义的,因此你访问的结果就是乱码,也就是“烫烫烫。。。。”。
在C++里的话你可以把把结构改成类,直接用类的构造函数来初始化,当然C++允许在结构体里面添加成员函数,但是给人感觉不正规。
也可以自己写函数比如Initialize(unsigned char a[],int begin,int end)
Initialize(unsigned char a[],int begin,int end)来初始化,自己写了个,可能不是很好,具体有很多种方法哈。
{
for(int i=begin;i!=end-1;i++)
cin>>a[i];}
a[i]='\n';
}