PDA

View Full Version : سوال: چطوری آرایه نامحدود درست کنم ؟



mamali-mohammad
جمعه 02 دی 1390, 11:24 صبح
سلام
این آرایه 20 عنصری هست :
int arr[20];
حالا من نامحدود میخوام باشه
چه کنم ؟

soorena
جمعه 02 دی 1390, 11:47 صبح
آخه عزيزم من نامحدود ميخوام که نميشه...
عروسک که نی بگی من ميخوام
وقتی حافظه کامپيوتر محدود هستش پس چيزی به اسم ارايه نا محدود وجود نداره.
اگه منظورت اينه که ارّايه نامعلوم ميخوای اين شد يه چيزی.برای اين کار ميتونی تو يک حلقه از يک ليست پيوندی استفاده کنی که تو اين forum خودم 20 بار تاحالا جواب دادم.

Aerox1
جمعه 02 دی 1390, 12:56 عصر
میتونی اولش یه مقدار رو به عنوان ماکزیمم بگیری
#define max 1000
int main()
{
int array[max];
}

پ.ن: در این روش حافظه به مقداری که توش بریزی پر میشه . یعنی مثل اونی که خودتون نوشتین نیست که مثلا 20 تا خونه رو برای آرایه در نظر بگیره حالا چه توش مقدار بدیم یا ندیم . اینجا حافظه در صورتی اشغال میشه که بهش مقدار بدیم .

silverfox
جمعه 02 دی 1390, 21:52 عصر
میتونی یه max در نظر بگیری مثلا 100 تا حالا اگه شد 101ی این 100 تا رو آزاد کنی یه آرایه 101ی بگیری اینارو منتقل کنی اون تو ولی در کل هم حافظه محدودیت داره هم اینکه چون خونه های آرایه باید پشت سر هم باشن نمیشه بگی حالا یه دونه دیگه به ته این اضافه کن.
ولی معمولا اینطوریه که می دونی مثلا تعداد چیزایی که توی آرایه میریزی حتما از 1000 کمتره خوب اگه 1000تایی بگیری می شه همون نا محدود برای اون حالت خاص اگرم عناصر می تونه تعدادش متغیر باشه و واقعا سقفی نداره که باید سراغ یه چیزی بری که داینامیک برای هر عنصر یه فضا از حافظه بگیره که می شه همون لیست مثلا.

developing
سه شنبه 06 دی 1390, 11:43 صبح
با سلام

اگه منظورت آرایه ی پویا (Dynamic Array) باشه که به روش زیر عمل می کنید:

int *array, n;
cout << "Please enter number of array items"<< endl;
cin >> n;
array = new int[n];
for (int i=0;i<n;i++)
cin >> array[i];

// other statements

delete(array);

quiet_programmer
چهارشنبه 07 دی 1390, 12:08 عصر
با سلام.

اگه کتابخونه STL رو تو کامپلرت داری از نوع List استفاده کن که اونچیزی که تو میخوای تا زمانی که جا داشته باشه عمل درج رو انجام میده اگه هم جا نداشت فحش میده:متعجب:
ناراحت شدی؟ باید خوشحال باشی که فحش بده چون میتونی با try{}catch اون رو به مراجع قضایی تحویل بدی و اعاده حیثیت کنی:چشمک:
در کل استفاده از نوع خیلی کد نویسیت رو سروسامون میده و کثافت کاری درگیری با اشاره گرها و غیره رو تو کدت نداری.

یاحق.
موفق باشید/