تور لحظه آخری
امروز : سه شنبه ، 13 آذر 1403    احادیث و روایات:  پیامبر اکرم (ص):همه گناهان گذشته كسى كه از روى ايمان و براى رسيدن به ثواب الهى معتكف شود، آمرزي...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

آراد برندینگ

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

ساختمان پزشکان

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

خرید سرور مجازی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

خرید نهال سیب

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

رفع تاری و تشخیص پلاک

پرگابالین

دوره آموزش باریستا

مهاجرت به آلمان

بهترین قالیشویی تهران

بورس کارتریج پرینتر در تهران

تشریفات روناک

نوار اخطار زرد رنگ

 






آمار وبسایت

 تعداد کل بازدیدها : 1837148355




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

چطوری یک ارایه ی بدون اندازه ایجاد کنم؟


واضح آرشیو وب فارسی:سایت ریسک: View Full Version : چطوری یک ارایه ی بدون اندازه ایجاد کنم؟ masoud_iq12-04-2007, 05:15 PMچطوری یک ارایه ی بدون اندازه ایجاد کنم؟:21: hamidreza_buddy12-04-2007, 07:04 PMیک Pointer تغعریف کن و هر وقت لازم بود اندازه ای برای اون در نظر بگیری از malloc استفاده کن. اگر هم می خواهی که قادر باشی عنصر جدید به آرایه اضافه کنی باید از صف (Queue) استفاده کنی. زبانت C هست یا C++ ؟ peyman198713-04-2007, 03:53 AMميتونين از ليست پيوندي ( linked list ) استفاده کنين. اصولا آرايه رو ساختمان داده ثابت و ليست پيوندي رو ساختمان داده پويا در نظر ميگيرن. hamidreza_buddy13-04-2007, 09:06 PMاگر هم می خواهی که قادر باشی عنصر جدید به آرایه اضافه کنی باید از صف (Queue) استفاده کنی. منظورم همون Linked List بود که قاط زدم اشتباهی گفتم Queue! paranoid_android14-04-2007, 11:44 PMساده س. اگه از cpp استفاده میکنی که یه آرایه داینامیک تعریف میکنی. اگه هم که از سی شارپ استفاده میکنی، آرایه یه رفرنس تایپه و اندازه مندازه حالیش نیست! یعنی محدودیت نداری. قربون سی شارپ برم با اون مدیریت خودکار حافظه ش:5: someone15-04-2007, 04:38 PMسلام. ساده س. اگه از cpp استفاده میکنی که یه آرایه داینامیک تعریف میکنی. ممنون از پاسختون. لطفا سعی کنین پاسخ به صورت کامل باشه. دوستمون در مورد ایجادش پرسیدن. اگه در مورد آرایه های Dynamic اطلاع داشتن این سوال مطرح نمیشد. همونطور که حمیرضا گفتن در C میتونین از malloc استفاده کنین و در Cpp از new مثلا به شکل زیر : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! البته توجه داشته باشین که در پایان برنامه باید حافظه ی تخصیص داده شده رو آزاد کنین. میتونین این کار رو با free و یا delete انجام بدین . (بر خلاف #C) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اگه هم که از سی شارپ استفاده میکنی، آرایه یه رفرنس تایپه و اندازه مندازه حالیش نیست! یعنی محدودیت نداری. ممکنه در مورد این گفته بیشتر توضیح بدین. هر زمان بخواین به آرایه ای مقدار بدین باید اندازش مشخص باشه. مثلا به شکل زیر : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! با خط اول در حافظه جایی برای pInt در نظر گرفته میشه. اما طولی نداره و تنها یه آدرس هست. که با خط دوم این آرایه با طول 7 در Heap ذخیره میشه. نمونه ی همین روش در Cpp وجود داره و تنها فرقشون در مدیرت حافظه هست که شما به اون اشاره کردین. مگر در مورد Collection ها (میشه گفت همون Template ها در Cpp) که قضیه در موردش فرق میکنه. hamidreza_buddy15-04-2007, 08:29 PMدر سی شارپ ، کلاسی به نام ArrayList وجود دارد که در واقع همون لیست پیوندی هست. این کلاس در namespace به نام System.Collection قرار دارد. می شه به این کلاس object ها را Add کرد و می توان شبیه یک آرایه با آن رفتار کرد. مثلاً با استفاده از اندیس: myArray[i] ; ولی در C# آرایه ها باید دارای اندازۀ مشخصی باشند و نمی توان اندازۀ آن را در زمان اجرا افزایش داد. مگر اینکه هنگامی که نیاز بود یک اندازۀ جدید به آن انتساب دهیم و همۀ اعضا را در آن کپی کنیم. paranoid_android16-04-2007, 07:35 PMسلام. ممنون از پاسختون. لطفا سعی کنین پاسخ به صورت کامل باشه. دوستمون در مورد ایجادش پرسیدن. اگه در مورد آرایه های Dynamic اطلاع داشتن این سوال مطرح نمیشد. همونطور که حمیرضا گفتن در C میتونین از malloc استفاده کنین و در Cpp از new مثلا به شکل زیر : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! البته توجه داشته باشین که در پایان برنامه باید حافظه ی تخصیص داده شده رو آزاد کنین. میتونین این کار رو با free و یا delete انجام بدین . (بر خلاف #C) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! ممکنه در مورد این گفته بیشتر توضیح بدین. هر زمان بخواین به آرایه ای مقدار بدین باید اندازش مشخص باشه. مثلا به شکل زیر : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! با خط اول در حافظه جایی برای pInt در نظر گرفته میشه. اما طولی نداره و تنها یه آدرس هست. که با خط دوم این آرایه با طول 7 در Heap ذخیره میشه. نمونه ی همین روش در Cpp وجود داره و تنها فرقشون در مدیرت حافظه هست که شما به اون اشاره کردین. مگر در مورد Collection ها (میشه گفت همون Template ها در Cpp) که قضیه در موردش فرق میکنه. خواهش میکنم. چشم. با تشکر از شما و دوست عزیز someone که نحوه تعریف آرایه دینامیک در سی و سی پی پی رو توضیح دادن. اینکه فرمودین: در مورد این گفته که "هر زمان بخواین به آرایه ای مقدار بدین باید اندازش مشخص باشه"، توضیح بدم، منظورتون رو متوجه نشدم. شما تو سی شارپ میتونید آرایه رو بدون تعیین محدوده اون تعریف کنید. ولی به هنگام مقداردهی باید از کلمه کلیدی new استفاده کنین. مثلا به این صورت: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! فکر میکنم خودتون هم اشاره کردید که تفاوت اصلی سی پی پی و سی شارپ در همون مدیریت حافظه هست. شما در سی پی پی باید در هنگام استفاده از یه آرایه پویا برای اینکه به هنگام تعریف محدودیتی برای تعیین بعد اون نداشته باشین، از مفهوم اشاره گر استفاده کنین و در نهایت در پایان سیکلی که استفاده از اون ارایه پویا به اتمام میرسه ملزم به آزاد کردن فضای تخصیص یافته به اون آرایه در حافظه هستین. نکته دوم اینکه در سی شارپ اعضای ارایه همه شی به حساب میان و خب مقادیر آبجکت همه رفرنس هستن در نتیجه خود آرایه هم یه رفنس تایپ محسوب میشه. البته در سی شارپ آرایه ای به اسم آرایه دندانه دار یا jagged array هم وجود داره که در واقع آرایه ای از آرایه هاست و بحثش جداست. paranoid_android16-04-2007, 07:38 PMولی در C# آرایه ها باید دارای اندازۀ مشخصی باشند و نمی توان اندازۀ آن را در زمان اجرا افزایش داد. مگر اینکه هنگامی که نیاز بود یک اندازۀ جدید به آن انتساب دهیم و همۀ اعضا را در آن کپی کنیم. فکر میکنم این توضیح در مورد سی پلاس پلاس باشه. نه؟ someone16-04-2007, 08:46 PMدوباره سلام. اگه توجه کنین نمونه ای که گذاشتین با نمونه ای که من گذاشتم یکی هست. شما گفته بودین : اگه هم که از سی شارپ استفاده میکنی، آرایه یه رفرنس تایپه و اندازه مندازه حالیش نیست! یعنی محدودیت نداری. از جمله شما این طور برداشت میشه که میشه از کد زیر بدون تعیین اندازه استفاده کرد. مثلا به این شکل : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! مشخصه که این کار امکان پذیر نیست. وقتی شما به شکل زیر یه آرایه رو مقدار میدین درسته طولش رو صریحا مشخص نمیکنین اما این کار توسط زمان -اجرا برای شما انجام میشه. در حقیقت طول آرایه مشخص میشه .وگرنه استفاده از اون امکان پذیر نیست. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! در اینجا آرایه ای با طول 7 ایجاد میشه. ضمنا چنین کاری رو در Cpp هم میشه انجام داد. مثلا : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! میبینین که شباهت زیادی وجود داره تنها تفاوتشون در این هست که این کد روی Stack ایجا میشه نه Heap. در Cpp هم میشه در زمان- اجرا یک آرایه با طول دلخواه ایجاد کرد. hamidreza_buddy16-04-2007, 09:29 PMفکر میکنم این توضیح در مورد سی پلاس پلاس باشه. نه؟ هم در مورد سی شارپه و هم C++. ما داریم دربارۀ آرایه ها صحبت می کنیم نه لیست پیوندی. در سی شارپ نیز باید هنگام new کردن اندازۀ آرایه معیین باشه . مثلاً اگر !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اندازۀ آرایه دیگر از 10 تا بیشتر نمی شود. یعنی نمی توانیم 11 عنصر در آن داشته باشیم. هر وقت نیاز بود همچین کاری می کنیم: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! (در اینجا n را دو برابر می کنیم و arr جدید با اندازه ای دو برابر شده بوجود می آوریم. البته باید همۀ اعضا را قبلاً در یک temp بریزیم که از دست نروند) در C++ همین کار را می توان با new و delete کردن انجام داد. یعنی هنگامی که شئ از نوع آرایه ایجاد شد، دیگر نمی توان اندازۀ آن را تغییر داد، مگر اینکه یک شئ جدید بسازیم (new کنیم) ولی در مورد ArrayList . به یک شئ از نوع ArrayList می توان هر تعداد عنصر به آن اضافه کرد. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 3365]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن