| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 551 人关注过本帖
标题:一个c程序很邪的问题
取消只看楼主 加入收藏
曹操cc
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-4-24
结帖率:100%
收藏
 问题点数:0 回复次数:2 
一个c程序很邪的问题
我用的是Dev-c++编程软件,gcc编译器
程序如下
/*此程序是从a数组中找出与b数组中匹配的第一字符*/
#include <stdio.h>
#include <string.h>
char *f_char(char *,char *);
main()
{
    char a[20]={"this is a student"},b[10]={"uwtar"},*addr=NULL;
    char ch;
    printf("addr=%x\n",addr);
    addr=f_char(a,b);
    printf("addr=%x,a=%x,b=%x\n",addr,a,b);
    ch=*addr;
    printf("匹配的字母是=%c\n",ch);
     system("pause");
     }
char *f_char(char *source,char *chars)
{
   char *m,*n;
   for(n=chars;*n!='\0';n++)
    {
        for(m=source;*m!='\0';m++)
           if(*n==*m)
              return m;
              return NULL;
                          }
                          }
安照上面的源代码编译没有问题,但如果把b[10]得初值改成b[10]="wtar",再编译没问题,但运行将出错。调试时显示“访问违制”段异常。对这个问题很费解,望高手帮忙看看,
搜索更多相关主题的帖子: 编译器 软件 
2009-07-31 18:28
曹操cc
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-4-24
收藏
得分:0 
回复2楼
多谢!问题解决了,但我不了,我的程序错在哪里呢?
2009-08-01 19:48
曹操cc
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-4-24
收藏
得分:0 
我找到问题了
/*此程序是从a数组中找出与b数组中匹配的第一字符*/
#include <stdio.h>
#include <string.h>
char *f_char(char *,char *);
main()
{
    char a[20]={"this is a student"},b[10]={"wtar"},*addr=NULL;
    char ch;
    printf("addr=%x\n",addr);
    addr=f_char(a,b);
    printf("addr=%x,a=%x,b=%x\n",addr,a,b);
    ch=*addr;
    printf("匹配的字母是=%c\n",ch);
     system("pause");
     }
char *f_char(char *source,char *chars)
{
   char *m,*n;
   for(n=chars;*n!='\0';n++)
        for(m=source;*m!='\0';m++)
           if(*n==*m)
              return m;
              return NULL;
                          
                          }
这是我重改过得程序,原来的问题也解决了。删了一对大括号,学习c还真蛮多问题的
2009-08-01 20:07
快速回复:一个c程序很邪的问题
数据加载中...
 
   



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

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