每当我尝试运行它时,我都会遇到分段错误。不知道为什么。逻辑似乎是正确的,它可能与函数调用有关。调试器说了一些关于堆栈的事情,但我不知道如何解释这一点。
char* rev_string(char* t)
{
int i;
int j;
i = j = 0;
char tmp;
while(t[i] != ' ')
i++;
while(i > j)
{
tmp = t[i];
t[i] = t[j];
t[j] = tmp;
i--;
j++;
}
return t;
}
我相信
您正在将第一个字符与字符串末尾的 null 终止字符交换,导致字符串的长度为 0,因为第一个字符是