PDA

View Full Version : مبتدی: یک مساله در درک کردن ساختار



اوبالیت به بو
سه شنبه 18 خرداد 1389, 19:18 عصر
سلام

دوستان اگه میشه این رو برای من تفسیر کنید:



struct Rec{
char *attribute;
char *value;
struct Rec *next;
} Student;


من نمی فهمم این ساختار چه شکلی میشه؟ یعنی در حافظه به شکلی هست؟

Mehdi Asgari
سه شنبه 18 خرداد 1389, 20:01 عصر
روی یک سیستم 32 بیتی، هر متغیر از این ساختار 12 بایت اشغال می کنه؛ هر اشاره گر 4 بایت (32 بیت)
اشاره گر ها بالطلبع حاوی مقدار معنا داری نیستن (منظورم عدد یا کاراکتره) ، بلکه حاوی آدرس هستن (جفتشونم به هر حال عدد هستن ، اما ما آدرس تفسیر می کنیمشون)
متغیر next اشاره می کنه به یک مورد دیگر از این ساختار در حافظه ، یا می تونه NULL باشه (به جایی اشاره نکنه. یعنی مثلا انتهای لیست پیوندی یا ... باشه)
اگه باز مشکلی هست بگو

tdkhakpur
سه شنبه 18 خرداد 1389, 20:27 عصر
در ادامه بحث - ساختاری که شما فرستادید با ساختار زیر هیچ تفاوتی ندارد


struct Rec{
char *attribute;
char *value;
void *next;
} Student;

فقط مشکل یا دردسر در این حالت برنامه نویسی اضافی را درپی خواهد داشت یعنی اگر شما قبل از کامپایل ساختار خودتان را کامپایل کنید در سایر نقاط میتواند از اسامی بدون تحلیل استفاده کنید یعنی مستقیما میتوانید در کد نویسی به اسم ساختار اشاره کنید ولی در حالتی که void تعریف کنید باید داخل کد نویسی هر جا که استفاده ای از این آدرس شد اسم ساختار را برای رد گیری فیلدها دکر کنید.


اگر ساختار شما مد نظر باشد باید
Student.Next->value;
ولی در ساختار با تعریف دیگر
((struct Rec *) Student.Next)->value;

با این کدها میبینید که این عملیات صرفا برای راحتی کارهای و نوشتن به روشهای دیگر باعث اضافه شدن struct Rec * به برنامه تان میشود

اوبالیت به بو
چهارشنبه 19 خرداد 1389, 17:25 عصر
سلام

من بازم نفهمیدم کجا کاربرد داره؟

وقتی روش ساده تری هست چرا باید پیچوند؟ اصلا کجا استفاده میشه؟

Mehdi Asgari
چهارشنبه 19 خرداد 1389, 17:27 عصر
دقیقا بگو کجا مشکل داری
در تعریف این ساختار به این شکل ؟ یا اصلا مفهوم لیست پیوندی و غیره ؟

اوبالیت به بو
چهارشنبه 19 خرداد 1389, 21:04 عصر
struct *next;

با این.

این یعنی چی؟

mohsensaghafi
پنج شنبه 20 خرداد 1389, 00:11 صبح
سلام دوست عزیز.

Rec * next;

یعنی یک اشاره گر به یک متغیر از نوع Rec .

obalitjoOon
نقل قول: یک مساله در درک کردن ساختار
سلام

من بازم نفهمیدم کجا کاربرد داره؟

وقتی روش ساده تری هست چرا باید پیچوند؟ اصلا کجا استفاده میشه؟
اتفاقا اصلا راه ساده تری نداره. و خیلی هم کاربرد های زیادی داره.