读书人

调试出现access violation,这是咋回事

发布时间: 2012-05-22 18:18:54 作者: rapoo

调试出现access violation,这是怎么回事?
======================================code==================================
#include<stdio.h>
#include<string.h>
void uniontest(char *s,char *t);
main()
{
char a1[20]="what are doing?";
char b1[20]="what is this";
uniontest(a1,b1);

}
void uniontest(char *s,char *t)
{

int i,j,k;
int len1=strlen(s)-1;
int len2=strlen(t)-1;
char v[40];



for(i=0;i<len1;i++)
{
for(j=0;j<len2;j++)
{
if(s[i]==t[j])
v[k++]=s[i];
else
v[k++]=s[i];
v[k++]=t[j];
}//for
}//for
v[k]='\0';
printf("%s",v);
}
=============================================code end==========================
编译链接都没有错怎么就运行不出来,哪里有错误?

[解决办法]
嗯,问题比较多,帮你改好了,呵呵,看不懂你要干嘛
你要学会用调试器,还是很容易调试出来的

C/C++ code
#include<stdio.h>#include<string.h>void uniontest(char *s,char *t);main(){    char a1[20]="what are doing?";    char b1[20]="what is this";    uniontest(a1,b1);}void uniontest(char *s,char *t){    int i,j,k;        //**************************    //修改如下:    /*int len1=strlen(s)-1;    int len2=strlen(t)-1;*/    int len1=strlen(s);    int len2=strlen(t);        char v[400];    k=0; //k要初始化    //**************************    for(i=0;i<len1;i++)    {        for(j=0;j<len2;j++)        {            if(s[i]==t[j])                v[k++]=s[i];            else                v[k++]=s[i];            v[k++]=t[j];        }//for    }//for    v[k]='\0';    printf("%s",v);} 

读书人网 >C语言

热点推荐