View Full Version : سوال: دریافت اندازه آرایه از ورودی
h.alizadeh
یک شنبه 17 آذر 1387, 13:54 عصر
سلام،
آیا میشه آرایه ای بسازیم که طولش رو از ورودی دریافت کنیم؟؟
اگه آره چطوری؟/
من اینطوری نوشتم ولی خطا گرفته میشه.
int n;
cout<<"Enter bode of array:"; cin>>n;
int a[n];
ممنون
emad_67
یک شنبه 17 آذر 1387, 14:11 عصر
تو همین بخش درباره آرایه داینامیک جستجو کن. زیاد مطرح شده.
h.alizadeh
یک شنبه 17 آذر 1387, 21:51 عصر
سلام، مرسی از لطفت سرچ کردم
من یکی از سورس های شما رو تست کردم:
#include<iostream.h>
#include<string.h>
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int s=0, n=5;
int *a = new int[n];
for(int i=0;i<n;i++) {
cin>>a[i];
}
cout<<a[2];
delete []a;
cout<<a[2];
getch();
}
فقط یک چیز من وقتی delete []a; رو مینویسم و خط بعدش میرم دوباره مثلا a[2] رو مقدارش رو استفاده میکنم. استفاده میشه!!!!!!!! یعنی مثلا مقدارش رو با Cout نمایش میده! خب مگه پاک نشده؟ پس چرا مقدار ش نمایش داده میشه؟ میشه یک کاری کنیم بعد از دیلیت مقادیر a از بین بره؟؟ الان درست این دیلیت چی رو پاک کرده؟!
emad_67
یک شنبه 17 آذر 1387, 23:09 عصر
مقداری که بعد از delete چاپ میشه دیگه مقدار عدد داخل آرایه نیست و یک عدد بی ربط هست که به خاطر اشاره a به جایی از حافظه که دیگه مشخص نیست از چه نوعی هست به وجود میاد.
h.alizadeh
دوشنبه 18 آذر 1387, 20:13 عصر
ممنون
ولی خب همون مقدار رو درست نشونمیده یعنی همون مقداری که قبل از پاک کردن ارایه در a[2]بود رو نشون میده.
ولی ممنون
Exception
دوشنبه 18 آذر 1387, 20:29 عصر
ممنون
ولی خب همون مقدار رو درست نشونمیده یعنی همون مقداری که قبل از پاک کردن ارایه در a[2]بود رو نشون میده.
ولی ممنون
تا وقتی اون مکان حافظه به پروسس دیگه ای تخصیص داده نشده و چیزی روش نوشته نشده، همون مقدار میمونه.
اما تو در هر صورت بعد از delete دیگه نباید ازش استفاده کنی.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.