C字符串中的奇怪指针行为SIGSEGV

时间:2016-02-15 16:36:35

标签: c++ c segmentation-fault sigsegv

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char * inplace_rev(char * s){
    int n=strlen(s);
    int i=0;
    char aux,aux2;
    while(i<=n/2){
        aux=s[n-i-1];
        aux2=s[i];
        s[i]=aux;
        s[n-i-1]=aux2;
        i++;
    }
    return s;
}
int main(int argc, char *argv[]) {
    printf("%d\n",sizeof(int));
    char *s=(char *)malloc(100);
    s="abcdef";
    printf("%s",s);
    printf("%s\n%s",s,inplace_rev(s));
    return 0;
}

分段错误发生在方法&#34; in place rev&#34;中的while结构的第一次迭代中。更具体地说,在

s[i]=aux;

我使用了两个辅助变量来强调分段错误。 基本上,我试图将字符串反转到位。 提前致谢 ! 它

0 个答案:

没有答案