我有一个最多可以存储 8 个字节数据的文件。
我有一个系统(我们称之为 Sys1),它可以从文件中获取 8 个字节并将其保存在 ram 内的缓冲区中。
我可以使用这 8 个字节并在其中复制一些内容,然后使用这个系统说“好的,我已经完成了,只需将这些数据发送回文件”。
我想将 8 个字节带入缓冲区,将一个整数复制到其中,这需要 4 个字节,然后在剩余的 4 个字节上复制另一个整数。我只想要 8 个字节的两个整数,我相信这是可以做到的。
我设法只复制了 4 个字节,这只是 1 个整数,并设法将其发送回文件。所以我有这样的事情:
char *data;
sys1.bring_the_8_bytes(&data);
//now the 8 bytes are in the buffer,
// data points to the first byte of the 8 byte sequence
int firstInteger = 10;
int secondInteger = 20;
//the two integers
memcpy(data,&firstInteger,sizeof(int));
//now the values of the first integer have been copied successfully.
sys1.send_the_8_bytes_back();
现在这工作正常!但是我不确定如何复制第一个整数,然后立即复制第二个。
我实际上应该知道第一个字节的地址正好在第一个整数占用的最后一个字节之后,然后在 memcpy 调用中将此地址用作目标地址,我的想法是否正确?如是,
我怎样才能做到这一点?我怎样才能找到我想要的这个地址?
提前致谢