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

Mem Functions

Memory-related functions

use std::mem::{size_of, size_of_val, align_of, align_of_val};
fn main() {
// size_of - type size
println!("=== Type Sizes ===");
println!("bool: {} bytes", size_of::<bool>());
println!("char: {} bytes", size_of::<char>());
println!("u8: {} bytes", size_of::<u8>());
println!("i32: {} bytes", size_of::<i32>());
println!("u64: {} bytes", size_of::<u64>());
println!("usize: {} bytes", size_of::<usize>());
// Reference sizes
println!("\n=== Reference Sizes ===");
println!("&i32: {} bytes", size_of::<&i32>());
println!("&[i32]: {} bytes", size_of::<&[i32]>()); // Fat pointer
println!("&str: {} bytes", size_of::<&str>()); // Fat pointer
println!("Box<i32>: {} bytes", size_of::<Box<i32>>());
// size_of_val - value size
let arr = [1, 2, 3, 4, 5];
println!("\n=== Value Sizes ===");
println!("[i32; 5]: {} bytes", size_of_val(&arr));
println!("slice: {} bytes", size_of_val(&arr[..]));
// align_of
println!("\n=== Alignment ===");
println!("u8 align: {}", align_of::<u8>());
println!("i32 align: {}", align_of::<i32>());
println!("u64 align: {}", align_of::<u64>());
// Struct padding
struct Padded { a: u8, b: u32, c: u8 }
println!("\nPadded struct: {} bytes (alignment: {})",
size_of::<Padded>(), align_of::<Padded>());
}

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

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