PDA

View Full Version : سوال: Void* to ... casting



MSJazayeri
دوشنبه 11 شهریور 1387, 02:27 صبح
چه طوری میشه void* رو به چیز های دیگه مثه int* و ... تبدیل کرد؟
(explicit):متفکر:

Salar Ashgi
دوشنبه 11 شهریور 1387, 07:34 صبح
سلام ، منظورتون از تبدیل چیه ؟؟

* void یک اشاره گر به void و * int یک اشاره گر به int هست ، حالا نمی دونم مشکل

شما کجاست ؟؟؟؟

md.it000
دوشنبه 11 شهریور 1387, 07:41 صبح
بهتره يه مثال بزني تا سوالت واضح تر بشه
برداشت خود من :
يعني منظورت اينه كه مقدار برگشتي يه تابع رو از چيزي به اشاره گري به int تبديل كنيم؟؟؟

لزوم اين كار چيست؟

bsng110
دوشنبه 11 شهریور 1387, 09:17 صبح
هوالحکیم
سلام
اصلاً باید اینکار را انجام داد وگرنه نمی توان از اشاره گرهای * void به صورت مستقیم استفاده کرد. برای تبدیل هم باید به صورت زیر عمل کنید:


#include<assert.h>
void *newMemory()
{
int *p;
p = new int;
assert(p);
return p;
}
void main()
{
int *newInt = (int *)newMemory();
....;
return;
}

در مورد اشاره گر های * void به پست ششم تاپیک http://barnamenevis.org/forum/showthread.php?t=119828 مراجعه کنید و قسمت توضیحات * void را مطالعه کنید(خواهشاً این دفعه مطالعه کنید و سرسری نگذرید که از این به بعد دیگر ارجاع نمی دهم)!
یا علی
حق نگهدارتان