读书人

segement fault!

发布时间: 2012-03-22 17:43:57 作者: rapoo

求助 segement fault!!!

C/C++ code
#include <stdio.h>#include <stdlib.h>int gcd(int a,int b){    while(a!=b)    {        if(a>b)        a-=b;        else        b-=a;    }    return a;}void juggling (int i,int n,char *x){    int cycles=gcd(i,n);    int t;    for(int j=0;j<cycles;j++)    {        t=x[j];        int k=j;        do        {            x[k%n]=x[(k+i)%n];//单步调式到这里。。。。显示堆栈错误?               k+=i;        }while(k%n!=j);        x[(k-i)%n]=t;    }}int main(){    char *s="abcdefgh";    int n=8;    int i=3;    juggling(i,n,s);    puts(s);}


到注释哪行就停止了
求高人分析原因啊!!

[解决办法]
char *s="abcdefgh";
==>
char s[]="abcdefgh";

[解决办法]
C/C++ code
char *s="abcdefgh";//这个是储存在常量区,不能被修改。。。 

读书人网 >C语言

热点推荐