我有一个简单的程序,我得到访问冲突*(str + start)
.为什么?我应该能够改变它.对?
void fn() { char *str = "Hello wordl!"; int end = strlen(str); int start = 0; end--; while(start < end) { *(str + start) = *(str + end); <--- Access violation writing location *(str + Start). end--; start++; } }
Michael.. 26
char *str = "Hello World";
是一个const字符串,不能修改.编译器可以将其放入不可写的位置,从而导致崩溃.
替换声明char str[] = "Hello World";
应该执行您想要的操作,将字符串放入堆栈中的可修改数组中.
char *str = "Hello World";
是一个const字符串,不能修改.编译器可以将其放入不可写的位置,从而导致崩溃.
替换声明char str[] = "Hello World";
应该执行您想要的操作,将字符串放入堆栈中的可修改数组中.