zoukankan      html  css  js  c++  java
  • RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly

    出现这个错误,在网上搜索了复制过来:

    这个错误多半是因为一个变量定义好后还没有被初始化,在内存中还没有分配空间,就被拿来使用了

    或者一些多线程里或者文件.h定义先后顺序的问题,检查变量被使用前是否已经初始化和分配空间

    在用QT5做串口实验的时候,自作聪明的用一个做QSerialPort对象指针做成员,代码如下:

    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    private slots:
        void on_comboBox_2_currentIndexChanged(const QString &arg1);
    
        void on_SendButton_clicked();
    
    private:
        Ui::MainWindow *ui;
        QSerialPort *serial;
        void initSerialPort();
        void serialRead();
    };
    View Code

    这本也没什么,QSerialPort  *serial; 只是一个指针

    QSerialPort    serial; 才是一个类对象
    如果用QSerialPort  *serial;,那就应该动态创建一个对象,或者让这个serial指针指向已有的对象,才能使用serial。

    但是并没有那么做,而是直接用serial指针操作,完全忘了申请一个对象了。结果就报了这么错。

    在网上搜了搜,看见有段回答,还不明白,先复制下来,慢慢体会:

    一般在如下情况把成员定义成指针:
    1)有多态的情况;会用到虚函数
    2)可能和别的类共享,或者只是引用别的类里的某个对象,所以生命周期不是很确定(考虑智能指针)
    3)大数据,如果定义成对象,会导致当前对象无法在栈内创建

    懒惰不会让你一下子跌到 但会在不知不觉中减少你的收获; 勤奋也不会让你一夜成功 但会在不知不觉中积累你的成果 越努力,越幸运。
  • 相关阅读:
    QQ浏览器X5内核问题汇总
    jQuery全屏滚动插件fullPage.js
    CSS3 Animation
    CSS3 Transition
    CSS3 Transform
    HTML5学习笔记(2):input type file的特性
    HTML5学习笔记(1):HTML5介绍与语法
    你必须知道的28个HTML5特征、窍门和技术
    Java内存释放——《Thinking in Java》随笔004
    构造器调用构造器——《Thinking in Java》随笔003
  • 原文地址:https://www.cnblogs.com/Rainingday/p/7905049.html
Copyright © 2011-2022 走看看