تمام سوالات سوالات بدون پاسخ سوال بپرسید

آرایه های معمول در ++C با طول ثابت هستند و برای استفاده از آرایه هایی با طول متغیر باید از لیست های پیوندی و ساختمان داده های مشابه استفاده کرد. اما روشی ساده برای انجام این کار می خواهم. چه باید بکنم؟

ببخشید،من منظور شما رو از سادگی متوجه نمی شم.می شه یه مقداری توضیح بدین؟

(14 مه '12, 08:36) Android clas...

ببینید استفاده از ساختمان داده هایی همانند لیست های پیوندی یا صف یا مانند این ها کمی با مفهوم آرایه های متفاوت است. حالا اگر پیاده سازی خوبی هم از آنها پیدا کنم، باز هم کمی در استفاده از آنها مفهوم با آرایه ها متفاوت خواهد بود. شاید مدلی شبیه به listهای موجود در #C مورد نظر من است تا بتوانم بسادگی از آنها استفاده کنم بدون این که به مفاهیم جدیدی نظیر لیست پیوندی یا پشته یا مانند این ها نیاز داشته باشم.

(14 مه '12, 23:01) raccoon
2 پاسخ

برای گرفتن حافظه به صورت داینامیک می تونید از دستور new استفاده کنید مثلا فرض کنید می خواهید یه آرایه داینامیک به طول n ایجاد کنید برای این کار می نویسید:

int *a=new int [n]

این دستور به اندازه n خونه حافظه از نوع int حافظه گرفته و آدرس اولیه خونه ها رو در متغییر a که از نوع اشارگر تعریف شده ذخیره می کنه از این روش میشه برای تخصیص حافظه برای آرایه های کاراکتری متغییر های تعریف شده توسط کاربر هم استفاده کرد

البته این روش هم می تونه یک روش اختصاص پویا باشه اما من نمی دونم طول آرایه مورد نظرم چقدر خواهد بود. پس نمی تونم به این روش عمل کنم یا اینکه هر دفعه طول آرایه بیشتر شد، یک آرایه دیگه بگیرم و تمام این اعضاء رو به اون انتقال بدم. از پاسخ تون ممنونم اما در مورد مسئله من مشکلم این طوری نمی تونه حل بشه. خودم حدس می زنم که باید از روشی مثل لیست های پیوندی باید استفاده بشه ولی بدنبال راه حل ساده تری هستم. ممنون.

(13 مه '12, 23:57) raccoon

سلام،

//Pointer to int and initialize to nothig
int *dyn_arr=NULL;

//Initialize as needed
dyn_arr[0] = (int*)malloc(sizeof(int));
dyn_arr[1] = (int*)malloc(sizeof(int));
...

//Free memory
delete [] dyn_arr;

//Clear dyn_arr to prevent using invalid memory reference.
dyn_arr = NULL;

منبع
منبع ۲

toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery

آموزش زبان جاوا Java
آموزش زبان انگلیسی
آموزش برنامه نویسی C
آموزش برنامه نویسی C++
آموزش جی کوئری jQuery
آموزش زبان سی شارپ C#
آموزش برنامه نویسی اندروید
آموزش برنامه نویسی اندروید
آموزش زبان اسمبلی Assembly
آموزش جاوا اسکریپت JavaScript
آموزش برنامه نویسی به زبان PHP

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
  • ×44
  • ×22
  • پرسیده شده: 12 مه '12, 21:56
  • بازدید: 5,811 بار
  • آخرین بروزرسانی: 10 ژوئن '12, 19:43

این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها