PDA

نسخه کامل مشاهده نسخه کامل : رفع ارور Error C4700: uninitialized local variable



Mohammad_HNF
29-12-2015, 14:46
سلام دوستان
من یه کدی برای پیاده سازی لیست های پیوندی نوشتم اما رویه سه تا از متغیرام این ارور رو داره

error C4700: uninitialized local variable

چطور میتونم مشکلم رو حل کنم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

این ارور رویه سه تا متغیر first,current,newnode
تویه سه خط 13 و 35 و 36 این ارور هست
ممنون میشم کمکم کنید

Msba
30-12-2015, 12:24
اشاره گر تعریف شده با این مشخصات:
newnode->data=arr[0]; //line 13 errorهیچ حافظه ای ندارد. فقط یک اشاره گر است.
می بایست قبل از استفاده از این اشاره گر یک حافظه بدان اختصاص بدهید. برای این کار می توانید از malloc یا یک struct حافظه دار استفاده کنید.
در صورتی که از malloc استفاده می کنید free را فراموش نکنید.
بقیه ی خطا ها نیز مشابه همین است.

موفق باشید.

Mohammad_HNF
04-01-2016, 13:22
ممنون میشم که توضیح بدین چجوری با malloc حافظه به متقیر های newnode,current,first بدم

ممنون میشم کمکم کنید.:n16:

Msba
04-01-2016, 18:55
می توانید از چنین کدی استفاده کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این کد را بهینه تر نیز می توان نوشت.
لیست پیوندی از نظر عملکردی بهینه نیست ولی از نظر میزان حافظه ی مصرفی وضعیت خوبی دارد.
علاوه بر لیست های یک طرفه (در این مثال)، لیست های دو طرفه نیز وجود دارد. یعنی اشاره گر Previous نیز وجود دارد.
لیست های ترکیبی گزینه ی مناسب تری هستند هم قابلیت دسترسی مستقیم مانند آرایه را دارند و هم امکان حرکت رفت و برگشت، این لیست ها از نظر پردازشی بهتر ولی از نظر منابع مصرفی بهینه نیستند. در واقع یک trade-off میان پردازش و حافظه در لیست ها وجود دارد.


موفق باشید.