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)大数据,如果定义成对象,会导致当前对象无法在栈内创建

    懒惰不会让你一下子跌到 但会在不知不觉中减少你的收获; 勤奋也不会让你一夜成功 但会在不知不觉中积累你的成果 越努力,越幸运。
  • 相关阅读:
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    205. Isomorphic Strings
    204. Count Primes
    203. Remove Linked List Elements
    201. Bitwise AND of Numbers Range
    199. Binary Tree Right Side View
    ArcGIS API for JavaScript 4.2学习笔记[8] 2D与3D视图同步
  • 原文地址:https://www.cnblogs.com/Rainingday/p/7905049.html
Copyright © 2011-2022 走看看