簡體   English   中英

該代碼是否泄漏內存? 我需要釋放任何東西嗎? C ++內存

[英]Is this code leaking memory? Do I need to free anything? C++ memory

所以我在用C ++寫一些矩陣類。 因此,每個矩陣都有一個指向條目的數組的指針,我不確定自己是否做對了,但是在子類中重新聲明了該數組。 (我不是C ++專家)

此內存是否需要釋放? 我只是用引用的數組覆蓋指針嗎? 任何幫助將不勝感激。 謝謝

class Matrix {
protected:
    float* entries;
public:
    int rows;
    int cols;


    Matrix() {
    }
    ~Matrix() {
    }
};

class Matrix4x4 : public Matrix {
    protected:
        float entry[4][4];
    public:

    /* This will create an empty matrix */
    Matrix4x4() {
        //Define the size of the arrays
        rows = 4;
        cols = 4;
        this->empty();
    }
    ...
};

代碼不會泄漏內存,也不會泄漏內存,因為您永遠不會在代碼中的任何地方說出newmalloc *,也不會調用以不受保護的方式這樣做的函數(例如,在RAII對象外部)。

但是,代碼也相當無用和誤導(例如Matrix4x4::entry 隱藏了殘留的Matrix::entry ,而rowscolumns似乎有些多余的變量),而這只能通過坐在一個好的C ++ Matrix4x4::entry解決。預訂幾個小時。

*)或@Nicol Bolas有幫助地指出, make_shared與丟失的循環引用一起

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM