مدیریت حافظه
یکی از مهمترین توابع زبانهای برنامه نویسی فراهم آوردن ابزاری جهت ادارهٔ حافظه و اشیا ذخیره شده در حافظه میباشد. سی دو راه اصلی برای تخصیص حافظه به اشیا را فراهم میکند.
- تخصیص حافظه به صورت اتوماتیک: اشیا موقتی میتوانند بر روی پشته ذخیره شوند، این فضای اختصاص داده شده به اشیا به صورت اتوماتیک پس از خارج شدن از بلاکی که اشیا در آنها تعریف شدهاند، آزاد و مجددا قابل استفاده خواهد بود.
- تخصیص حافظه به صورت دینامیک : اندازههای اختیاری از بلاکهای حافظه میتوانند توسط توابع کتابخانهای همانند تابع malloc از ناحیهای از رم موسوم به هیپ در هنگام اجرای برنامه درخواست بشود. این بلاکهای حافظه تا زمانیکه متعاقبا توسط تابع free به سیستم باز گردانده نشوند در حافظه باقی میمانند. برای تخصیص حافظه به صورت پویا(دینامیک) باید آدرس بلوک حافظهای که توسط تابع malloc گرفته میشود را در یک اشاره گر ذخیره کنیم.