تالار گفتمان مانشت
محل متغیرها در حافظه (زبان سی) - نسخه‌ی قابل چاپ

محل متغیرها در حافظه (زبان سی) - هاتف - ۲۵ دى ۱۳۹۲ ۰۸:۱۹ ب.ظ

سلام
پاسخ گزینه ی چهار هست
من منظور این سوال رو درباره محل های یکسان از حافظه متوجه نمیشم
استنباط من اینه که
وقتی وارد بلاک دوم میشیم متغیرهاش همون جایی قرار میگیرند که قبلا متغیرهای بلاک اول قرار گرفته بودند
یعنی در هنگام ورود به بلاک دوم، بلاک اول از سر پشته حذف شده و بساط بلاک دوم در محل بلاک اول پهن میشه
اگر اینطور فکر کنیم پاسخ قابل توجیه هست، نظر شما چیه؟
[attachment=14658]

RE: محل متغیرها در حافظه (زبان سی) - farhud - 29 دى ۱۳۹۲ ۱۰:۳۹ ق.ظ

میشه منبع این سوال رو معرفی کنید؟
و توی سی تودرتویی بیش از دو سطح هم داریم مگه؟

RE: محل متغیرها در حافظه (زبان سی) - هاتف - ۲۹ دى ۱۳۹۲ ۰۷:۵۹ ب.ظ

(۲۹ دى ۱۳۹۲ ۱۰:۳۹ ق.ظ)farhud نوشته شده توسط:  میشه منبع این سوال رو معرفی کنید؟
و توی سی تودرتویی بیش از دو سطح هم داریم مگه؟
مربوط به یکی از آزمون های پارسه بوده، به نظرم این کد توی سی اجرا میشه و مشکلی نداره.

Re: محل متغیرها در حافظه (زبان سی) - farhud - 29 دى ۱۳۹۲ ۰۸:۳۲ ب.ظ

احتمالا منظور طراح اینه که متغیرهای هر بلوک با بلوک همزادش تو یه اکتیویشن رکورد ذخیره میشن؟

درباره اینکه زیربرنامه های سی اینطوری میتونن تودرتو باشن هم کاش مثالی دردسترس داشتیم. مثلا توی کتاب پرات همه مثالهای زیربرنامه های تودرتو از پاسکال هستن. و من فکر میکردم که توی سی چنین امکانی وجود نداره.

RE: محل متغیرها در حافظه (زبان سی) - equilibrium - 29 دى ۱۳۹۲ ۰۹:۴۶ ب.ظ

(۲۵ دى ۱۳۹۲ ۰۸:۱۹ ب.ظ)هاتف نوشته شده توسط:  وقتی وارد بلاک دوم میشیم متغیرهاش همون جایی قرار میگیرند که قبلا متغیرهای بلاک اول قرار گرفته بودند
یعنی در هنگام ورود به بلاک دوم، بلاک اول از سر پشته حذف شده و بساط بلاک دوم در محل بلاک اول پهن میشه
اگر اینطور فکر کنیم پاسخ قابل توجیه هست، نظر شما چیه؟
فکرتون درسته؛
کافیه رکورد فعالیت رو رسم کنید:
برای بیرونی ترین {} یه بلاک بکشید که دو تا خونه اولش به ترتیب i و j قرار می گیرن؛
علاوه بر i و j اون دو تا بلاک داخلی هم حافظه میخان که باید به اندازه مکسشون حافظه بگیرید که میشه سه تا خونه؛
وقتی بلاک اول فعاله، دو تا خونه بعد از i و j میشه مال p و q و خونه سوم خالیه؛ وقتی بلاک دوم فعاله دو تا خونه بعد از i و j میشه مال r و s و خونه سوم هم بین دو تا بلاک حاوی a و بلاک حاوی b به اشتراک تقسیم میشه؛

RE: محل متغیرها در حافظه (زبان سی) - farhud - 29 دى ۱۳۹۲ ۱۰:۲۱ ب.ظ

من اشتباه میکردم و کتاب پرات مثالهایی از این دست داره.چون ممکنه به درد دوستان دیگه بخوره آخر فصل کنترل زیربرنامه های کتاب پرات به این موضوع پرداخته.