当前位置:  开发笔记 > 编程语言 > 正文

如何解决访问冲突写入位置错误?

如何解决《如何解决访问冲突写入位置错误?》经验,为你挑选了1个好方法。

我有一个简单的程序,我得到访问冲突*(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";应该执行您想要的操作,将字符串放入堆栈中的可修改数组中.



1> Michael..:

char *str = "Hello World";是一个const字符串,不能修改.编译器可以将其放入不可写的位置,从而导致崩溃.

替换声明char str[] = "Hello World";应该执行您想要的操作,将字符串放入堆栈中的可修改数组中.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有