PDA

View Full Version : سوال: [help] چرا عملگر NEW به درسته عمل نمی کند ؟



K-FIVE
پنج شنبه 22 بهمن 1394, 20:25 عصر
درود
قاعدا با new دادن به یک اشاره گر ب اندازه تعریف شده باید حافظه اختصاص یباد
اما برای من اینطور نشده اینبار :




#include <iostream>
#include <iomanip>

using namespace std;

int main(){
int* i = new int;

i[0]=10;
cout<<"i[0] = "<<i[0]<<endl;
i[1]=11;
cout<<"i[1] = "<<i[1]<<endl;
i[2]=12;
cout<<"i[2] = "<<i[2]<<endl;
i[3]=13;
cout<<"i[3] = "<<i[3]<<endl;
i[4]=14;
cout<<"i[4] = "<<i[4]<<endl;

i[500]=2000;
cout<<"i[500] = "<<i[500]<<endl;

delete i;

return 0;
}



خب من فقط 1 اینت حافظه گرفتم / اما به ادرس 500 هم دسترسی دارم / چرا ؟
در حلقه for ک تست کردم تا 35000 هزار هم دسترسی داشتم

138992



#include <iostream>
#include <iomanip>


using namespace std;




int main(){
int* i = new int;


*i = 0;
cout<<i[0]<<endl;


i+=1000;
*i = 1000;
cout<<*i<<endl;


i += 9000;
*i = 9000;
cout<<*i<<endl;


i-=10000;
delete i;


return 0;
}



output :

0
1000
9000


Process returned 0 (0x0) execution time : 0.035 s
Press ENTER to continue.


ممنون میشم کسی بگه ایراد از کجاست :)
اگر هم این پست تکرار هست و قبلا جواب داه شد / لینک جواب رو بده و این روو حذف کنه / ممنون