vs2019 写入访问权限冲突
Posted lqerio
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs2019 写入访问权限冲突相关的知识,希望对你有一定的参考价值。
先说句题外话
vs反应有时候有点慢,改过的地方等几秒才会显示正确
另外有时候正确的地方会报错,重启吧
回到正题
“引发了异常: 写入访问权限冲突。
_Left 是 0xCDCDCDCD。
如有适用于此异常的处理程序,该程序便可安全地继续运行。”
原因是在初始化栈时使用了malloc,而栈的自定义对象中有string
malloc只是分配内存,并不进行初始化,不调用类的构造函数,所以当以下这两处调用发生的时候,都会出现错误
getline(cin, p->data); 还有
p = (DNode*)malloc(sizeof(DNode));
p->data = ss;
都是因为string对象的构造函数没有被调用,没有构建string对象。所以,getline函数无法调用string对象进行赋值,同样,date也无法完成赋值。
同理,你修改后的程序,因为使用的是int类型替代string类型,所以没有上面说的情况发生,所以可以运行。
解决办法,用new代替malloc,
p = new(DNode);
new会调用相应类的构造函数完成初始化。
注意这样做free栈时要用delete[]
以上是关于vs2019 写入访问权限冲突的主要内容,如果未能解决你的问题,请参考以下文章
我有一个冲突矩阵,以及具有不同访问权限的用户列表,我想检查该用户是不是为冲突访问权限
当“受控文件夹访问”打开时如何检查 .NET 中的目录写入权限