تخيل الذاكرة (RAM) كصف طويل من الخزائن:
1 byte
4 bytes
8 bytes (64-bit)
1-2 bytes
Memory Addresses:
✓ المميزات:
✗ العيوب:
Memory Addresses (متفرقة!):
✓ المميزات:
✗ العيوب:
تفتت الذاكرة
لما بنحجز ونفضي ذاكرة كتير، بيبقى فيه فراغات صغيرة
بين البيانات.
المشكلة: ممكن يكون فيه ذاكرة فاضية كتير، بس مش متصلة!
Before (No Fragmentation):
4 خلايا فاضية متصلة ✓
After Deletions (Fragmented):
6 خلايا فاضية بس متفرقة! ✗
💡 ليه ده مشكلة؟
لو عايز تحجز array من 4 خلايا، مش هتلاقي مكان متصل رغم إن فيه
6 خلايا فاضية!
الحل: Garbage Collection, Compaction, أو استخدام Linked
Lists.
Enter a name (A-Z) and size, then allocate.