| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1395 人关注过本帖
标题:自定义函数可以返回一组数字吗.? 或者有什么别的方法返回给主函数一串数字, ...
只看楼主 加入收藏
w716169470
Rank: 2
等 级:论坛游民
帖 子:51
专家分:25
注 册:2013-4-18
结帖率:61.54%
收藏
已结贴  问题点数:20 回复次数:9 
自定义函数可以返回一组数字吗.? 或者有什么别的方法返回给主函数一串数字,下面是我写的代码,求大神帮助.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int *my_jixuan(int x, int y);

int main(int argc , char argv[])
{
    int *p;
    int i;
    p = my_jixuan(35,7);

    for(i = 0; i < 7; i++)
    {
        printf("%d\t",p[i]);
    }
    printf("\n");
   
}

int *my_jixuan(int x, int y)
{
    int i, j;
    int a[10];

    srand(time(NULL));
   
    for(i = 0; i < y; i++)
    {
        len : a[i] = rand() % x - 1;   
   
        for(j = 0; j < i; j++)
        {
            if(a[i] == a[j])
                goto len;
        }
    }

   
    return a;
}
搜索更多相关主题的帖子: 函数 数字 include 
2013-05-22 20:27
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:10 
这样是不行的。

当调用函数结束后,相应的里面申请的内存也被释放了,程序返回的是个已经释放的内存地址,所以会出错。

如果你要返回地址的话,可以将int a[10];申明成静态的。

改成这样:static int a[10]; 这样,当函数调用后,这个数组的内存就不会被自动清除了,程序也就可以在主程序中使用了。

Edsger Dijkstra:算法+数据结构=程序
2013-05-22 20:58
w716169470
Rank: 2
等 级:论坛游民
帖 子:51
专家分:25
注 册:2013-4-18
收藏
得分:0 
回复 2楼 雪狼MJ
哦 谢谢~~~ , 还有别的更好的方法实现我的想法吗, 求指点~~
2013-05-22 21:08
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:0 
你还想怎么样?

Edsger Dijkstra:算法+数据结构=程序
2013-05-22 21:12
w716169470
Rank: 2
等 级:论坛游民
帖 子:51
专家分:25
注 册:2013-4-18
收藏
得分:0 
回复 4楼 雪狼MJ
像在主函数里面定义个指针动态申请内存的, 然后传递指针,无返回值的那种。。~
2013-05-22 21:15
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:5 
希望一个函数返回多个计算结果,可以通过如下方法:
(1)将数组作为函数的参数,将计算结果存放在数组中,例如:void my_jixuan(int x, int y,int a[]),将计算结果存储在数组a中即可;
(2)在函数中申请一段内存存储结算结果,函数返回内存地址;
(3)函数的计算结果为以结构体数据,结构体可以包含多个数据。
2013-05-22 21:24
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:0 
那不更简单么?

还可以直接申明个全局数组,连传递都免了,直接在函数内部修改值,无论在哪里都可以拿来用!

Edsger Dijkstra:算法+数据结构=程序
2013-05-22 22:04
zhangqi_gsts
Rank: 6Rank: 6
来 自:甘肃天水
等 级:侠之大者
威 望:1
帖 子:227
专家分:457
注 册:2011-3-27
收藏
得分:5 
函数返回后释放了
两种方法,一种是用static声明
一种是用malloc动态分配
2013-05-22 22:32
w716169470
Rank: 2
等 级:论坛游民
帖 子:51
专家分:25
注 册:2013-4-18
收藏
得分:0 
回复 8楼 zhangqi_gsts
谢谢懂了
2013-05-22 22:45
w716169470
Rank: 2
等 级:论坛游民
帖 子:51
专家分:25
注 册:2013-4-18
收藏
得分:0 
回复 6楼 helloUJS
非常感谢
2013-05-22 22:45
快速回复:自定义函数可以返回一组数字吗.? 或者有什么别的方法返回给主函数一串 ...
数据加载中...
 
   



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

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