| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1638 人关注过本帖
标题:一道c语言习题,找了很久不知道错误在哪
取消只看楼主 加入收藏
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
结帖率:85.71%
收藏
已结贴  问题点数:30 回复次数:4 
一道c语言习题,找了很久不知道错误在哪
程序有点长,但错误只在第二个函数,
原题要求是对输入的十个数字进行处理,使第一个数字是最小的数字,最后一个数字是最大的数字,要求用指针处理,代码如下:
#include <stdio.h>
static void scan_f(int *str[]);
static void proce_ss(int *str[]);
static void print_f(int *str[]);
static int str1[10];
int main()
{
    int i;
    int *str[10];
    for(i=0;i<10;i++)
    str[i]=&str1[i];
    scan_f(str);
    proce_ss(str);
    print_f(str);
    return 0;
}
static void scan_f(int *str[])
{
    int i;
    printf("Please input ten numbers:");
    for(i=0;i<10;i++)
    scanf("%d",&str1[i]);
    printf("\nthe original numbers are:");
    for(i=0;i<10;i++)
    printf("%d\t",*str[i]);
}
static void proce_ss(int *str[])
{
    int i,k,*min=str[0],*max=str[0];
    int*temp=NULL;
    for(i=0;i<10;i++)
    {
        if(*min>*str[i])
        {
          min=str[i];
          k=i;
        }
    }
    if(k!=0)
    {
        temp=str[0];
        str[0]=str[k];
        str[k]=temp;
    }
    for(i=0;i<10;i++)
    {
        if(*max<*str[i])
        {
          max=str[i];
          k=i;
        }
    }
    if(k!=9)
    {
        temp=str[0];
        str[0]=str[k];
        str[k]=temp;
    }
}
static void print_f(int *str[])
{
    int i;
    for(i=0;i<10;i++)
    printf("%d\t",*str[i]);
}
排查后确定问题在proce_ss这个函数,运行时警告segmentation fault,应该是非法访问内存,求教问题在哪?
PS:因为是初学指针,这道习题本身是很简单的,我所写的算法都是围绕尽可能多用指针,所以算法很粗糙,见谅
搜索更多相关主题的帖子: include return 最大的 c语言 
2017-02-11 16:04
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
收藏
得分:0 
回复 2楼 炎天
多些答复,你这个我当然懂也想过,但能否正面回答,就我的源代码回复,你改编的代码是使具体的数字互换,而我想把地址互换,为什么不可以??

............
2017-02-11 19:11
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
收藏
得分:0 
回复 4楼 linlulu001
谢谢答复,一个低级错误

............
2017-02-12 15:32
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
收藏
得分:0 
回复 6楼 炎天
嗯,多谢版主,以后会多加注意

............
2017-02-12 15:32
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
收藏
得分:0 
回复 5楼 惊悚s
谢谢

............
2017-02-12 15:33
快速回复:一道c语言习题,找了很久不知道错误在哪
数据加载中...
 
   



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

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