读书人

调用函数也会出现access violation 的

发布时间: 2013-08-01 15:23:18 作者: rapoo

调用函数也会出现access violation 的错误?
这是小弟做C程序设计语言课后习题写的代码,就是写REVERSE函数(字符窜倒置)的递归版

#include "StdAfx.h"
#include <stdio.h>
#include <string.h>
void reverser(char s[],int i, int len)
{
int temp,j;
j = len - (i + 1);
if(i < j)
temp = s[i];
s[i] = s [j];
s[j] = temp;
reverser(s,++i,len);
}
void reverse(char s[])
{

reverser(s,0,strlen(s));
}
int main(char argc,char* argv[])
{
char str[10] = "abcde";
reverse(str);
for(int i =0;i < 6;i++)
printf("%c",str[i]);
printf("\n");
return 0;
}
当我调试的时候,断点运行到reverse(str)的时候,就会出现access violation 的错误 C 编程语言
[解决办法]
void reverser(char s[],int i, int len)
{
int temp,j;
j = len - (i + 1);
if(i < j)
temp = s[i];
s[i] = s [j];
s[j] = temp;
reverser(s,++i,len);
}

无限递归, 永远不结束.
void reverser(char s[],int i, int len)
{
int temp,j;
j = len - (i + 1);
if(i < j)
{
temp = s[i];
s[i] = s [j];
s[j] = temp;
reverser(s,++i,len);
}
}
这样修改试试

读书人网 >C语言

热点推荐