最大 8 バイトのデータを格納できるファイルがあります。
私は、ファイルから 8 バイトを取得し、RAM 内のバッファーに保存できるシステム (呼び出しは Sys1 にしましょう) を持っています。
これらの 8 バイトを使用して、その中にいくつかのものをコピーし、このシステムを使用して、「OK、これで完了です。これらのデータをファイルに送り返すだけです」と言うことができます。
私は 8 バイトをバッファに持ってきて、4 バイトを取る整数をバッファにコピーし、残りの 4 バイトに別の整数をコピーしたいと考えています。私は8バイトで2つの整数が欲しいだけで、それができると信じています。
私は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();
これでうまくいきます!ただし、最初の整数をコピーしてからすぐに2番目の整数をコピーする方法がわかりません。
最初の整数によって取得される最後のバイトの直後にある最初のバイトのアドレスを実際に知り、このアドレスを memcpy 呼び出しの宛先アドレスとして使用する必要があります。私の考えは正しいですか? もし、そうなら、
どうすればこれを達成できますか?? 希望するこのアドレスを見つけるにはどうすればよいですか?
前もって感謝します