美文网首页
C++执行时出现了:“引发了异常: 写入访问权限冲突。”

C++执行时出现了:“引发了异常: 写入访问权限冲突。”

作者: joy1314bubian | 来源:发表于2017-02-21 14:31 被阅读0次
    #include<iostream>
    using namespace std;
    void LeftShiftOne(char *s, int n)
    {
        char t = s[0];
        for (int i = 1;i < n;i++)
        {
            s[i-1] = s[i];
        }
        s[n - 1] = t;
    }
    void LeftRotateString(char *s, int n, int m)
    {
        while (m--)
        {
            LeftShiftOne(s, n);
        }
    }
    int main()
    {
        char *s = "abcdef";
        int m = 3;
        int n = 6;
        LeftRotateString(s, n, m);
        cout << s << endl;
        return 0;
    }
    

    执行时出现了异常: 写入访问权限冲突
    原因是:char s = "abcdef";有问题。将字符指针s指向了一个字符串常量,所以在子函数中不可以通过s来修改字符串常量
    可以通过将字符串常量初始化成一个字符数组来解决 :char s[] = "abcdef";因为s[i]不是常量,所以可以通过*str来修改该字符数组,即修改了该字符串。

    相关文章

      网友评论

          本文标题:C++执行时出现了:“引发了异常: 写入访问权限冲突。”

          本文链接:https://www.haomeiwen.com/subject/exkuwttx.html