[英]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();
}
...
};
代碼不會泄漏內存,也不會泄漏內存,因為您永遠不會在代碼中的任何地方說出new
或malloc
*,也不會調用以不受保護的方式這樣做的函數(例如,在RAII對象外部)。
但是,代碼也相當無用和誤導(例如Matrix4x4::entry
隱藏了殘留的Matrix::entry
,而rows
和columns
似乎有些多余的變量),而這只能通過坐在一個好的C ++ Matrix4x4::entry
解決。預訂幾個小時。
*)或@Nicol Bolas有幫助地指出, make_shared
與丟失的循環引用一起
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.