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

Memory Model

เรื่องนี้อาจจะไม่ต้องรู้ก็ได้ถ้าเขียนแค่ Logic แต่ถ้ารู้ คุณจะเป็นเทพเจ้า Rust และเขียนโค้ดได้เร็วขึ้นแบบก้าวกระโดด!

ลองนึกภาพว่า Memory เป็นตึกสูง Stack คือลิฟต์ที่ขึ้นลงอัตโนมัติ Heap คือห้องเช่าที่เราต้องจองเอง เมื่อเข้าใจแล้ว เราจะเห็น “Matrix” ของโปรแกรมเลยครับ!

fn main() {
// ============================================
// Stack = LIFO (Last In, First Out)
// เร็วมาก! แค่ขยับ stack pointer
// ขนาดต้องรู้ตอน compile
// ============================================
let x = 42; // i32 - 4 bytes บน stack
let y = 3.14; // f64 - 8 bytes บน stack
let arr = [1, 2, 3]; // [i32; 3] - 12 bytes บน stack
let flag = true; // bool - 1 byte บน stack
// ============================================
// Function calls สร้าง stack frame
// Parameters และ local variables อยู่ใน frame
// ============================================
process(x, y);
println!("Stack data: x={}, y={}, arr={:?}", x, y, arr);
}
fn process(a: i32, b: f64) {
// a, b อยู่บน stack frame ของ function นี้
let local = a as f64 + b;
println!("Local: {}", local);
}
// เมื่อ function จบ stack frame ถูกทำลายทันที

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

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