| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1953 人关注过本帖
标题:请高手指教 关于函数返回值为结构体的问题
只看楼主 加入收藏
yushaoze
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-3-23
收藏
 问题点数:0 回复次数:5 
请高手指教 关于函数返回值为结构体的问题
问题如下:struct SQ 定义了一个结构体类型,现在要写一个函数SQMesure,他的返回值类型是该结构体类型,请问该如何实现。各位大牛多多指教阿
搜索更多相关主题的帖子: 结构体 返回值 函数 指教 
2008-03-23 10:59
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
SQ SQMesure()
{
    SQ temp;
    //计算要返回的数据,放入temp中
    。。。。。。
    return temp;
}

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-03-23 11:01
yushaoze
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-3-23
收藏
得分:0 
多谢楼上指教!不过函数执行完成之后,内存好像就被释放了,在它里面定义的结构体变量的值不就没了吗。其实我是要在main函数里调用SQMesure,从而利用它所返回的结构体类型值,进行下一步的工作,还请大虾多多指教。另,不知道用指针 + 一个全局的结构体变量能否解决此问题?新手上路,若是问得问题太弱智,还请楼上多多包涵,多谢大虾了!
2008-03-23 11:10
qfyzy
Rank: 2
等 级:论坛游民
威 望:1
帖 子:380
专家分:86
注 册:2008-2-17
收藏
得分:0 
C在这方面都是按值传递
比如int a(){int c;return c};
你可以问c不是被释放了吗?
但他的值传入了调用者。
一般结构体不要整体传递,用malloc+指针会好点

当对C的经验增加时,它会显的很好用.----Dennis M Ritche如是说
2008-03-23 11:16
yushaoze
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-3-23
收藏
得分:0 
有道理,多谢多谢
2008-03-23 11:48
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
[bo]以下是引用 [un]yushaoze[/un] 在 2008-3-23 11:10 的发言:[/bo]

多谢楼上指教!不过函数执行完成之后,内存好像就被释放了,在它里面定义的结构体变量的值不就没了吗。其实我是要在main函数里调用SQMesure,从而利用它所返回的结构体类型值,进行下一步的工作,还请大虾多多指教。另,不知道用指 ...


你在main函数调用这个函数,可以直接用返回值处理啊,形参肯定释放了,你直接用实参啊!
main()
{
    SQ stru1;
    stru1 = SQMesure(参数列表);
    //现在stru1中就是你需要的值,可以进行相应处理了
}
另外如果你想数据一直存在,你可以让SQMesure函数不要直接返回结构体,而是把结构的地址作为参数传入,这样可以直接赋值了,如下:
void SQMesure(SQ *temp, ...)
{
    //函数实现
    。。。。
}
main()
{
    SQ *stru1;
    用malloc给stru1申请地址;
    SQMesure(stru1, ...);
}

[[it] 本帖最后由 moonwalker 于 2008-3-23 15:13 编辑 [/it]]

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-03-23 15:12
快速回复:请高手指教 关于函数返回值为结构体的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032898 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved