PDA

View Full Version : مبتدی: نحوه ذخیره سازی اطلاعات در حافظه



bombas
پنج شنبه 05 آبان 1390, 22:43 عصر
سلام

فرض کنید برنامه ای را می نویسیم چند تا عدد را دریافت کند مثال 1,2,3,4 خوب این عدد در حافظه قرار می گیرد آیا این اطلاعات بصورت پشت سر هم قرار میگیرد در حافظه ؟ (منظور از حافظه حافظه Ram است ؟)در آرایه میگن به شکل پشت سر هم ولی به طور معمولی چطوری قرار میگیرد ؟ این نحوه قرارگیری در حافظه در سیستم عامل های مختلف متفاوت است ؟

(مدیران اگر انجمن بهتری است انتقال بدهند به اون بخش)

vasilopita
پنج شنبه 05 آبان 1390, 22:49 عصر
خیر الزاما پشت سر هم قرار نمی گیرن ...
این از خواص آرایه است که داده ها رو پشت سر هم در حافظه قرار می ده. البته با کمک اشاره گر ها می شه داده ها رو پشت سر هم قرار داد. (آرایه ها هم یه جورایی مثل اشاره گر ها هستن دیگه!)

bombas
شنبه 07 آبان 1390, 13:57 عصر
خیر الزاما پشت سر هم قرار نمی گیرن ...
این از خواص آرایه است که داده ها رو پشت سر هم در حافظه قرار می ده. البته با کمک اشاره گر ها می شه داده ها رو پشت سر هم قرار داد. (آرایه ها هم یه جورایی مثل اشاره گر ها هستن دیگه!)

لطف میکنید بیشتر توضیح دهید؟و از ابتدا تا انتها به سوالات پاسخ دهید؟

mohammadriano
سه شنبه 10 آبان 1390, 01:20 صبح
خوب شما اطلاعات باید کسب کنید از حافظه رم
فقط در برنامه نویسی هیچ وقت اشاره گر رو از نوع int تعریف نکنید تعصف بنده جایی است که 85% اساتید دانشگاه ها هم از int برای تعریف اشاره گر استفاده می کنند و این واقعاً ابراز تعصف من رو به دنبال داره که استادهامون تو سال 1978 موندن و دیگه خودشون رو آپدیت نکردن در آن سال ها قدرت رم سیستم پایین بوده و به همین دلیل در کتب C اشاره گر از نوع int تعریف می شد اما اگر حافظه رم شما 128 هم باشد امکان اجرای برنامه به 0 می رسد پس اشاره گر رو از نوع Double استفاده کنید
ربطی به سوال نداشت ولی بعدها به کار شما میاد.
موفق باشید

mohammadriano
سه شنبه 10 آبان 1390, 01:36 صبح
خوب حالا سوال شما
رم یک سیستم مثلا 1GB است یعنی چی؟
یعنی هر گیگا بایت معادل 1024 مگابایت و هر مگا بایت معادل 1024کیلو بایت و هر کیلوبایت معادل 1024 بایت است و هر بایت 8 بیت است
بایت را با B بی بزرگ ,بیت را با b بی کوچک نشان میدهند
حال به این نتیجه میرسیم 1024*1024*1024 = مقدار حافظه رم ما به بایت یا 3^1024
در فعل وانفعالاتی که در سیستم عامل رخ می دهد شما نمی توانید بگویید که حتما اطلاعات پشت سر هم وارد می شود
پنجره task manager این رو به خوبی به شما نشان میدهد که رم در هر ٍانیه میزان فضای استفاده شده اش کم و زیاد میشود
خوب یک داده که ازنوع int داشته باشیم از حاصل ضرب بالا یعنی 1073741824 فقط دو خانه اشغال می شود و اگر مقدار را در خروجی cpp بخواهیم مشاهده کنیم
عدد را در مبنای 16 به ما نشان میدهد
امیدوارم کمک کوچکی به شما کرده باشم