我正在尝试对c-string进行冒泡排序 - 请参阅下面的函数.目的是根据ASCII码对字符进行排序.
编译器在运行时不会抱怨,此时我会遇到分段错误.我运行了gdb,程序运行正常,直到第12行.在第12行,gdb调试器声明'Process gdb-inferior killed'.
为什么第12行不正确?我在程序的其他地方遇到过这个问题 - 无法将字符分配给c字符串的元素.我知道strcpy()需要字符串赋值,但是对于特定的元素,我认为它没问题.任何帮助很多人赞赏.
1. void bubblesort(char *str)
2. {
3. int length = strlen(str);
4.
5. for (int i = length - 1; i > 0; i--)
6. {
7. for (int j = 0; j < i; j++)
8. {
9. if (str[j] > str[j + 1])
10. {
11. char temp = str[j + 1];
12. str[j + 1] = str[j];
13. str[j] = temp;
14. }
15. }
16. }
17. …Run Code Online (Sandbox Code Playgroud)