Skip to content
เข้าสู่ระบบ

Alloc Structs

Structs สำหรับ memory allocation

use std::alloc::Layout;
fn main() {
// Create layout for a type
let layout = Layout::new::<i32>();
println!("i32 Layout:");
println!(" size: {} bytes", layout.size());
println!(" align: {} bytes", layout.align());
// Layout for array
let array_layout = Layout::array::<i32>(10).unwrap();
println!("\n[i32; 10] Layout:");
println!(" size: {} bytes", array_layout.size());
println!(" align: {} bytes", array_layout.align());
// Custom layout
let custom = Layout::from_size_align(100, 8).unwrap();
println!("\nCustom Layout:");
println!(" size: {} bytes", custom.size());
println!(" align: {} bytes", custom.align());
// Layout of struct
#[repr(C)]
struct MyStruct {
a: u8,
b: u32,
c: u16,
}
let struct_layout = Layout::new::<MyStruct>();
println!("\nMyStruct Layout:");
println!(" size: {} bytes", struct_layout.size());
println!(" align: {} bytes", struct_layout.align());
// Extend layout
let (extended, offset) = layout.extend(Layout::new::<f64>()).unwrap();
println!("\nExtended Layout:");
println!(" total size: {}", extended.size());
println!(" offset of second: {}", offset);
}

เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม

ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด