zoukankan      html  css  js  c++  java
  • 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[]

  • 相关阅读:
    kubernetes yaml文件格式
    docker 镜像上传至私有仓库
    Docker Compose编排容器
    jenkins+gitlab+ansible+dockerfile+k8s自动发布代码
    kubernetes 命令行
    关于HDFS的读写流程
    vue中watched属性
    app中rem算法
    vue使用中的随笔
    react 表单获取多个input
  • 原文地址:https://www.cnblogs.com/lqerio/p/11622282.html
Copyright © 2011-2022 走看看