Table of Contents
نشت حافظه مسائل رایج در برنامه نویسی C و ++C است که می تواند منجر به افزایش استفاده از حافظه و بی ثباتی سیستم شود. درک نمونه های دنیای واقعی به توسعه دهندگان کمک می کند تا این مشکلات را به طور موثر شناسایی و رفع کنند.این مقاله سناریوهای و راه حل های معمول مربوط به نشت حافظه در این زبان ها را ارائه می دهد.
مثال 1: گم شدن آزاد در C
در C، حافظه به طور پویا اختصاص داده شده باید به طور واضح آزاد شود و شکست در این کار باعث نشت حافظه می شود.به عنوان مثال، ذخیره سازی حافظه با بدون یک نتیجه متناظر در حافظه نشتی.
کد اسنیپت:
[FLT2]
راه حل:
پس از استفاده از آن، نام گذاری شده است.
مثال دوم: بیش از حد نوشتن بدون رایگان در C
بیش از نوشتن یک اشاره کننده که اشاره به حافظه اختصاص داده شده بدون آزاد کردن آن باعث نشت می شود، به عنوان مثال، اختصاص دادن یک ارزش جدید به یک نقطه بدون آزاد کردن حافظه قبلی.
کد اسنیپت:
[[ویرایش]
[[ویرایش]
راه حل:
دانلود زیرنویس فارسی فیلم Free the Pointer Before Reassigning:
[[ویرایش]
مثال 3: حافظه در ++C با جدید
در C++، استفاده از [FLT-7] حافظه ای را اختصاص می دهد که باید با به منظور حذف علل نشتی، به آن متصل شود.
کد اسنیپت:
[[ویرایش]
راه حل:
استفاده از {{FLT 10}} برای آزاد کردن حافظه
[[ویرایش]
بهترین تمرین ها برای جلوگیری از نشت حافظه
- پس از آن، با [[FLT13]] و [[FLT14]] (FLT:15) به بروید.
- از نقاط هوشمند در ++C برای خودکار سازی مدیریت حافظه استفاده کنید.
- به طور منظم کد را برای نشت های بالقوه بررسی کنید.
- از ابزارهایی مانند Valgrind برای تشخیص نشت در طول توسعه استفاده کنید.