موسسه خیریه محک

شهر ریاضی بازی-ریاضی

تغییر نوع حافظه پویا

+1 امتیاز
310 نمایش

آیا میشه نوع داده‌ای که برای یک حافظه پویا تعریف شده رو تغییر داد؟
یعنی اون حافظه رو به نوع دیگه‌ای اختصاص داد؟

برنامه‌ای که تست نشده کار نخواهد کرد (Stroustrup, Bjarne)
پرسیده شده سه شنبه ۲۱ آذر ۱۳۹۱ در C++ توسط CPP_Crawler3  
بازتگ شده سه شنبه ۲۷ فروردین ۱۳۹۲ توسط admin

2 پاسخ

+1 امتیاز

یه راه استفاده از reinterpret_cast هست که نوع اشاره‌گر و تغییر می‌ده. مثلاً کد زیر:



include

using namespace std;
int main(){
int a;
int b = &a;
char *c = reinterpret_cast<char
>(b);
cout<<b<<endl<<c;
}

یه راه دیگه اینه که یه اشاره‌گر و اینقدر ببریم جلو که به یه خونه‌ی دلخواه برسه. و اون خونه رو با اشاره‌گر دلخواه خودمون اشاره کنیم


include

using namespace std;
int main(){
short int si = 34;
int i = 56456;
short int psi = &si;
int *pi = &i;
while(reinterpret_cast<int
>(psi) < pi) psi++;
cout<<psi<<endl<<pi;
}
هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده جمعه ۸ دی ۱۳۹۱ توسط prodo  
0 امتیاز

خب منطقا شما وقتی میتونین از حافظه پویا استفاده کنین که یک اشاره‌گر از اون نوع تعریف کرده باشین. در مورد اشاره‌گر هم که میدونین نمیشه نوعش رو تغییر داد.
پس در کل همچین چیزی بعید میدونم ممکن باشه!

پاسخ داده شده سه شنبه ۵ دی ۱۳۹۱ توسط CPP_Crawler4