たとえば、があるstruct
場合:
#[derive(Clone, Copy)]
#[repr(C, packed)]
pub struct SomeData {
a: u16,
b: u64,
c: u32,
d: u16,
}
0x1000
メモリ内の特定の場所、たとえばメモリ内のポイントに効率的にコピーするにはどうすればよいですか? このようなものは機能しますか?
let dst_addr: u64 = 0x1000;
let src = SomeData {a: 1, b: 2, c: 3, d: 4};
unsafe {
let tmp: &[u8; 10] = transmute(src);
copy(dst_addr as *mut _, tmp);
}
repr(C, packed)
ここで実際に部品が必要になることに注意してください。
ソフトウェアは、オペレーティング システムやその他の制限なしで、ベア x86_64、リング 0で実行されています。また、私は標準ライブラリなしでプログラミングしているので、これはライブラリだけで達成できるはずcore
です。
もちろん、これは安全ではありませんが、問題ではありません。
編集:明確にする:初期化されていないメモリにコピーしています。