C++ Memory Management
🔹 تعریف
-
Memory Management در C++ یعنی کنترل و استفاده از حافظه RAM برای برنامه.
-
دو نوع حافظه اصلی وجود دارد:
-
Stack (پشته) → حافظه خودکار برای متغیرهای محلی
-
Heap (انبوه) → حافظه دینامیک که با
new
وdelete
مدیریت میشود
-
🔹 1️⃣ حافظه خودکار (Stack)
-
متغیرهای محلی داخل تابع به طور خودکار ایجاد و پاک میشوند.
-
مثال:
🔹 2️⃣ حافظه پویا (Heap)
-
وقتی اندازه حافظه در زمان کامپایل مشخص نیست یا بزرگ است، از heap استفاده میکنیم.
-
با
new
وdelete
میتوان حافظه را اختصاص داد و آزاد کرد.
مثال ایجاد حافظه پویا
مثال با آرایه پویا
🔹 خروجی: 1 2 3 4 5
🔹 نکات مهم
-
متغیرهای stack خودکار پاک میشوند، نیاز به
delete
نیست. -
هر new باید با delete جفت شود، وگرنه Memory Leak رخ میدهد.
-
استفاده از heap انعطافپذیری بیشتری برای دادههای بزرگ یا زمان اجرای نامشخص فراهم میکند.
-
میتوان از smart pointer ها (C++11 به بعد) برای مدیریت خودکار heap استفاده کرد: