我无法找到分段错误的原因 objective - 使用指针反转字符串
#include<stdio.h>
#include<string.h>
void swap(char *ptr[], int c)
{
int i;
char *r[40];
for(i=0; i<c; i++)
*(r[c-i]) = *(ptr[i]);
printf("%s",*r);
}
main()
{
int i;
char *ptr[20],str[40];
printf("enter string:");
gets(str);
for(i=0; i<(strlen(str)); i++)
ptr[i]=&(str[i]);
swap(ptr,strlen(str));
}
答案 0 :(得分:3)
问题出在这里 -
char *r[40];
for(i=0;i<c;i++)
*(r[c-i])=*(ptr[i]);
在这里,您声明了char
指针r
的数组,并且您取消引用这些未初始化的指针,这些指针必定会导致seg错误。