-
ポインタを使用したアドレス指定:
#include <stdio.h> int main() { int data = 123; // 書き込むデータ int* ptr = (int*)0x1000; // 書き込むメモリのアドレス *ptr = data; // データをメモリに書き込む return 0; }
上記の例では、整数型のデータをメモリアドレス0x1000に書き込んでいます。
-
memcpy関数を使用したデータのコピー:
#include <stdio.h> #include <string.h> int main() { int data = 123; // 書き込むデータ void* dest = (void*)0x1000; // 書き込むメモリのアドレス memcpy(dest, &data, sizeof(int)); // データをメモリにコピーする return 0; }
上記の例では、
memcpy
関数を使用してデータを指定したメモリアドレスにコピーしています。 -
union
を使用したメモリの共有:#include <stdio.h> union Data { int intValue; // 整数型のデータ float floatValue; // 浮動小数点型のデータ }; int main() { union Data data; data.intValue = 123; // 書き込むデータ int* ptr = (int*)0x1000; // 書き込むメモリのアドレス *ptr = data.intValue; // データをメモリに書き込む return 0; }
上記の例では、
union
を使用して異なるデータ型を同じメモリ領域で共有し、データをメモリに書き込んでいます。
これらはC言語でメモリの特定の場所にデータを書き込むためのいくつかの一般的な方法です。使用する方法は、特定の要件と環境によって異なります。必要な場合は、詳細なドキュメントやリファレンスを参照してください。