PDA

View Full Version : سوال: ارسال struct به عنوان خروجی تابع؟



amiin1364
دوشنبه 02 شهریور 1388, 23:51 عصر
سلام
اینو ببینید:

struct

point{


int x,y;


};


struct point func(int a){


struct point temp;


temp.x=a;


temp.y=a+2;


return temp;


}



:متفکر:چجوری میشه بدون استفاده از temp و یا استفاده از pointer به عنوان آرگومان تابع همین نتیجه رو گرفت
ممنون
یا حق

Nima_NF
سه شنبه 03 شهریور 1388, 17:07 عصر
روش مرسوم به این شکل هست:




void func(int a, point* mypoint )
{
mypoint->x=a;

mypoint->y=a+2;

{


فراخوانی:



point mypoint;

func( 10, &mypoint);

amiin1364
سه شنبه 03 شهریور 1388, 22:40 عصر
سلام آقا نیما ممنون
اما مثل اینکه منظورم رو خوب نگفتم اینو گفتم که:


بدون استفاده از temp و یا استفاده از pointer به عنوان آرگومان

اینو بلدم میخوام توی اسم function پارامترم رو پاس کنم :متفکر: با همون فرمت
راهی داره.

ممنون
یا حق

clover
جمعه 06 شهریور 1388, 02:32 صبح
سلام آقا نیما ممنون
اما مثل اینکه منظورم رو خوب نگفتم اینو گفتم که:



اینو بلدم میخوام توی اسم function پارامترم رو پاس کنم :متفکر: با همون فرمت
راهی داره.

ممنون
یا حق

خب اگه بخواهیم مساله را دور بزنیم باید بگم که راه دیگه استفاده از یک ساختار به صورت سراسری هست . به این سادگی :

struct point
{
int x,y;
};
struct point temp;

struct point func(int a)
{
temp.x=a;
temp.y=a+2;

return temp;
}

می دونم که این کار مسخره هست اما : به هر حال شما به یک ساختار احتیاج دارید تا عملیات خودتونو روی اون انجام بدید یا نه ؟ خب این ساختار باید در جایی اعلان بشه ، خواه داخل تابع یا بیرون از تابع .

tdkhakpur
جمعه 06 شهریور 1388, 13:41 عصر
خوب این هم راه دیگر


struct point
{
int x,y;
};
struct point temp;

void func(struct point &tmp)
{
tmp.x= 10;
}

//طرزاستفاده
struct point k;
func(k);

amiin1364
جمعه 06 شهریور 1388, 21:13 عصر
سلام
از همه ممنون
یا حق