PDA

View Full Version : مبتدی: نسبت دادن آدرس یک اشاره گر به اشاره گری از نوع دیگر



user1101
شنبه 15 اسفند 1388, 13:52 عصر
چجوری می شه مقدار یک اشاره گر رو به اشاره گری از نوع دیگر نسبت داد؟

کامپایلر نسبت دادنشون رو به شکل عادی قبول نمی کنه مثلا وقتی کد زیر رو می نویسم:
ip = cp//ip is int pointer and cp is char pointer
ارور "*can not convert int * to char" رو می ده و مجبورم به شکل من درآوردی مقدار اشره گر اولی رو چاپ کنم و بعد با اسکن اف بریزمش تو اشاره گر دومی

Nima_NF
شنبه 15 اسفند 1388, 16:29 عصر
در اکثر موارد به شکل صریح با پرانتر می توانید تبدیلات مجاز را انجام دهید.



char *y;
// fill it , use it

int* x = (int*) y;


در C++ برای این کار عملگرهایی خاصی وجود دارد که امن تر انجام می دهند، که برای کار شما reinterpret_cast نیاز هست(تبدیل هر نوعی)




int *x = reinterpret_cast<int*>( y );


سایر موارد:




dynamic_cast: Used for conversion of polymorphic types.
static_cast: Used for conversion of nonpolymorphic types.
const_cast : Used to remove the const, volatile, and __unaligned attributes.
reinterpret_cast: Used for simple reinterpretation of bits.
safe_cast : Used to produce verifiable MSIL.