Layflok 2023-11-29 16:12 采纳率: 66.7%
浏览 3
已结题

我就拿到VS编译器上尝试调试一下,结果发现是逆转字符串有错(相关搜索:逆序字符串)

逆序字符串的的操作,我刚刚在刷leetcode,用到了逆序字符串的操作,然后一直显示错误,我就拿到VS编译器上尝试调试一下,结果发现是逆转字符串有错,然后我就单独写出来,还是显示有错,人麻了,将这个报错,我有40分钟了,这是为啥,有没有懂的啊,

img

下面是代码。


int main()
{
    //char* p = "abba";
    char* s = "hello";
    int len = strlen(s);
    int right = 0;
    int left = len - 1;
    while (right < left)
    {
        char tmp = s[right];
        s[right] = s[left];
        s[left] = tmp;
        right++;
        left--;
    }
    printf("%s\n", s);
    return 0;
}
  • 写回答

4条回答 默认 最新

  • 柯本 2023-11-29 19:28
    关注

    对C语言,不会作数据的指针区域检查的,所以你的程序语法上没有错,且对早期DOS下的TC等C语言,也会有正常的结果

    img


    但在windows下,程序运行在保护模式,而常量字串会放入常量区,它们是允许修改的,所以要么没结果 ,要么会报错
    所以语法上,程序没有错,但C语言是环境有关的,在目前windows/linux下,它是不正确的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月8日
  • 已采纳回答 11月30日
  • 创建了问题 11月29日

悬赏问题

  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图