#pragma pack(1)
typedef struct p1
{
short int ka;
long vit;
short int kv;
double d;
char t[60];
} P1;
#pragma pack()
typedef vector <p1> vP1; // вектор Зон видимости
void Form1::calc()
{
QByteArray ba;
QDataStream stream(ba,IO_WriteOnly);
P1 p;
vP1 vv;
int ii=0;
p.ka=32767;
p.vit=0x0;
p.kv=32767;
p.d=0;
for (short i=0;i<60;i++)
{
short j=i&0x000f;
p.t[i]=j;
}
vv.push_back(p);
p.ka=0;
p.vit=0xF0F0F0F0;
p.kv=0;
p.d=0;
for (short i=0;i<60;i++)
{
short j=i&0x0007;
p.t[i]=j;
}
vv.push_back(p);
stream.device()->reset();
ba.resize(0);
QFile pp("data.ttt");
pp.open(IO_WriteOnly);
p=vv[0];
stream.writeBytes((char *)&p,sizeof(p));
p=vv[1];
stream.writeBytes((char *)&p,sizeof(p));
pp.writeBlock((char *)&ba[0],ii);
pp.close();
}
перед каждой записью появляются 2 байта, в которых записана длина структуры
т.е. длина полученного файла не 156 байт, а 160.
Как с этим бороться?
Что я не так делаю?