结构体赋值问题,在线等 ,急!
struct ST_DetailsUI7 {
chara[];
charb[];
charc[];
chard[];
};
void main(){
int ST_DetailsUI7_id[4]={4,5,2,6};
char wp[]= "123456789abcdefgh ";
memcpy(&DetailUI7.a,&wp[j],ST_DetailsUI7_id[0]);
j+=ST_DetailsUI7_id[0];
memcpy(DetailUI7.b,&wp[j],ST_DetailsUI7_id[1]);
j+=ST_DetailsUI7_id[1];
cout < <DetailUI7.a;
}
我是想通过ST_DetailsUI7_id的值来截取wp中的值一个个放入道a,b,c,d中,
要得结果是DetailUI7.a=1234,DetailUI7.b=56789;
但是现在DetailUI7.a最后会出现123456789,不知道为什么会这样串值。在线等!!!!!!!!
[解决办法]
#include <iostream>
using namespace std;
struct ST_DetailsUI7 {
chara[6];
charb[5];
charc[10];
chard[10];
}DetailUI7;
void main(){
int j=0;
int ST_DetailsUI7_id[4]={4,5,2,6};
char wp[]= "123456789abcdefgh ";
memcpy(&DetailUI7.a,&wp[j],ST_DetailsUI7_id[0]);
j+=ST_DetailsUI7_id[0];
memcpy(DetailUI7.b,&wp[j],ST_DetailsUI7_id[1]);
j+=ST_DetailsUI7_id[1];
cout < <DetailUI7.a;
}
//这个得到的就是1234。
你试试看
[解决办法]
#include <iostream.h>
struct ST_DetailsUI7 {
chara[6];
charb[5];
charc[4];
chard[10];
}DetailUI7;
void main(){
int j=0;
int ST_DetailsUI7_id[4]={4,5,4,6};
char wp[]= "123456789abcdefgh ";
memcpy(&DetailUI7.a,&wp[j],ST_DetailsUI7_id[0]);
j+=ST_DetailsUI7_id[0];
memcpy(DetailUI7.b,&wp[j],ST_DetailsUI7_id[1]);
j+=ST_DetailsUI7_id[1];
cout < <DetailUI7.a;
}
________________________________________________________
試下 我看可以的