سلام
چجوری میشه طوله یه آرایه رو در زمان اجرا ست کرد؟
Printable View
سلام
چجوری میشه طوله یه آرایه رو در زمان اجرا ست کرد؟
اگر لطف کنی بگی برای کدوم یک از C ,Cpp یا MFC می خوای ممنون میشم . :)
سلام
برای ++C می خوام.
میتونی یه اشاره گر از جنسی که برای آرایه در نظر گرفتی تعریف کنی ، در موقع لازم اون رو New کنی ( همینجا سایزش رو مشخص میکنی ) و بعد از کاربرد ، Delete اش کنی . مثلا" :
somewhere
int *cMyArray;
somewhere else
cMyArray = new int[50]
after usage
delete [] cMyArray;
یا مثلا" بصورت خلاصه :
int* cMyArray = new int[30];
:)
سلام
باتشکر
در صورتی که کار فوق رو انجام بدم اطلاعاته قبلی آرایه از بین نمی روند؟
اگه بخوام طول آرایه توسطه کاربر تعیین بشه چی کار باید بکنم؟
معلومه . مقدار مورد نظرت رو از کاربر میگیری و به همون اندازه New میکنی :
int iSize;
cin>>iSize;
int* cMyArray = new int[iSize];
این کد رو نوشتم که فقط مفهوم مشخص بشه وگر نه اینطوری کد نوشتن چندان مرسوم و معقول نیست
خوش باشی :)
کدام اطلاعات قبلی ؟ اطلاعات قبلی ای وجود نداره ! تو خودت آرایه رو ایجاد کردی .نقل قول:
در صورتی که کار فوق رو انجام بدم اطلاعاته قبلی آرایه از بین نمی روند؟
سلام
خیلی ممنون مشکلم حل شد ولی برای اطلاعات بیشتر یه سوال دیگه هم داشتم.
نمیشه بدون استفاده از اشاره گر این کار ها رو کرد؟
خیر . استفاده از اشاره گر ها باعث میشه برنامه ات با Heap کار کنه که میتونه اندازه های متغیر رو برای انواع قبول کنه اما بدون استفاده از اشاره گر تو فقط میتونی با Stack کار کنی که اندازه انواع روش فیکس هستن . :)
سلام
خیلی ممنون :flower:
سلام
میتونین برای اینجور کاربردها از vector استفاده کنید. اوونوقت حتی وسط کار هم میتونین اندازه آرایه رو زیاد کنید بدون اینکه اطلاعات قبلی دستکاری بشه.
;std::vector<YOURTYPE> m_MyVector
این نوع داده ای مربوط به STL هستش.
سلام
از راهنماییتون ممنونم :flower:
البته فکر کنم در C به Vector می گویند لینک لیست . درسته؟
اگر اشتباه می کنم حتما تذکر بدین
با تشکر
وکتور Linked list نیست . برای ایجاد Linked list باید از تمپلیت list استفاده کنی . لازمه توضیح بدم اعضای خانوادهء STL هم با استفاده از اشاره گر وظایفشون رو انجام میدن .
موفق باشید :)
شما می تونید از تابع mallocنیز استفاده کنید
ببخشید که جوابهای من خلاصه هستش چون تایپ فارسی من واقعا افتضاحه!!!!!!!!!! :cry:
typeاین 10 minطول کشیذ
خوب من یادمه که برای وکتور می تونستیم اطلاعات رو به صورت به قطار پشت سر هم در بیاریم
در مورد لینک لیست هم همینطور بود.درسته؟
با تشکر
اگر از malloc یا new استفاده کنی مقدار بازگشتی اشاره گر به نا حیه ای از Heap است در غیر این صورت بستگی به global یا local بودنش داره(که بازم به هر حال جز Heap نیست چه اشاره گر چه غیره)نقل قول:
خیر . استفاده از اشاره گر ها باعث میشه برنامه ات با Heap کار کنه که میتونه اندازه های متغیر رو برای انواع قبول کنه اما بدون استفاده از اشاره گر تو فقط میتونی با Stack کار کنی که اندازه انواع روش فیکس هستن