我试图扭转一个字符串.我拿了两个指针,一个指向字符串的开头,另一个指向字符串的末尾.然后我交换了指针的值.
int main()
{
char *string = "stack overflow";
int len = strlen(string);
char *end;
char tmp; //temporary variable to swap values
//pointer pointing at the end of the string
end = string+len-1;
printf(" value of start and end %c %c", *string , *end); //correct values printed
while(string<end)
{
tmp = *string;
*string = *end; //segmentation fault
*end = tmp;
*string++;
*end--;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
char *string = "stack overflow";
Run Code Online (Sandbox Code Playgroud)
这将创建一个只读字符串文字.修改它是未定义的行为.改为使用数组:
char string[] = "stack overflow";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
572 次 |
| 最近记录: |