首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

调用函数也会出现access violation 的异常

2013-08-01 
调用函数也会出现access violation 的错误?这是小弟做C程序设计语言课后习题写的代码,就是写REVERSE函数(

调用函数也会出现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);
}
}
这样修改试试

热点排行