函数能返回结构体类型的变量不?
函数能返回结构体类型的变量不? 问题点数:20、回复次数:10Top
1 楼zhouqingyuan(浪帆)回复于 2004-05-01 21:56:15 得分 0
可以。自定义类型的变量一样可以返回的。Top
2 楼antijpn(antijpn)回复于 2004-05-02 00:37:43 得分 0
可以是可以,但是效率实在是太低了Top
3 楼wbh0360(手中无剑,心中有剑,剑人合一:))回复于 2004-05-02 08:54:47 得分 0
可以,但效率低,不如返回地址啊。Top
4 楼robbie24(独行虾)回复于 2004-05-02 10:48:43 得分 0
可别返回局部结构体变量的地址哦~Top
5 楼lw549(那个孩子他爹)回复于 2004-05-02 15:26:05 得分 0
返回结构体的指针Top
6 楼tyrobird(真实菜鸟)回复于 2004-05-02 17:04:26 得分 10
typedef struct
{
int a;
char b;
char c;
short d;
}foo_t;
foo_t my_func()
{
foo_t f;
....
return f;
}
上面的代码是正确的,但一般不建议这么写,这样
foo_t* my_func()
{
foot_t* p_f = (foo_t*)malloc(sizeof(foo_tT));
...
return p_f; //去外面释放
}
Top
7 楼liem(阿明)回复于 2004-05-02 17:48:21 得分 0
可以返回Top
8 楼cngdzhang()回复于 2004-05-02 18:02:48 得分 10
简单对象可以,
但是当结构中有指针的时候,
它的拷贝是很机械的
比如:
struct st
{
char *s;
}
struct st s1,s2;
那么s1=s2; 时是s1.s=s2.s的,而不是stcpy(s1.s,s2.s),有点危险
Top
9 楼bshaozi(俺们那噶不学c!)回复于 2004-05-02 21:32:08 得分 0
可以返回啊
不仅是指针,也可以是结构体本身
但是一般是返回指针~
这样便于以后的操作~Top
10 楼ghiewa(阿漠)回复于 2004-05-02 23:40:58 得分 0
hehe,要注意结构体的生存周期哦!!
效率太低? 是指又拷贝了一个副本?Top




