PDA

View Full Version : سوال: چرا یک ناحیه جداگانه به نام Heap برای اشاره گرها در نظر گرفته می شود ؟



razebaran
پنج شنبه 02 خرداد 1387, 14:34 عصر
سلام به دوستان عزیز ؛
در برنامه نویسی یک ناحیه خاصی به نام heap برای کار اشاره گرها قرار می دهند ؛ چرا این ناحیه ی جداگانه در نظر گرفته می شود؟ و روی مدیریت حافظه و سرعت سیستم چه تأثیری دارد ؟
با تشکر.

A_Salimi
پنج شنبه 02 خرداد 1387, 15:33 عصر
در بیشتر موارد ،زمانی که برنامه شما اجرا شده است ، فضای استفاده نشده ای در حافظه کامپیوتر شما وجود دارد.این حافظه استفاده نشده در سی پلاس پلاس heap (یا گاهی اوقات free store) نامیده می شود .
شما می توانید فضایی را داخل free store برای یک متغیر نوع جدید از نوع داده شده با استفاده از عملگر مخصوصی در c++ اختصاص دهید که آدرس فضای اختصاص داده شده را بر می گرداند .این عملگر new است که با عملگر delete کامل می شود که فضای استفاده شده توسط new را مجددا به حافظه بر میگرداند.

شما می توانید فضایی را در free store برای بعضی از متغیرها در قسمتی از یک برنامه اختصاص دهید و سپس فضای اختصاص داده شده را آزاد کنید و آن را به free store برگردانید - بعد از اینکه شما ارتباط را با متغیرها به پایان رساندید .
این حافظه را ، برای استفاده مجدد با متغیرهای دینامیک اختصاص یافته و در همان برنامه در دسترس قرار میدهد .

این میتواند تکنولوژی قدرتمندی باشد و شما را قادر می سازد که از حافظه بهره کافی ببرید و در خیلی از موارد آن منتج به برنامه هایی میشود که میتواند برنامه های خیلی بزرگتر را هندل کند در غیر اینصورت بطور قابل ملاحظه ای درگیری بین داده ای ممکن است بوجود آید .