一个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",再编译没问题,但运行将出错。调试时显示“访问违制”段异常。对这个问题很费解,望高手帮忙看看,