我試圖成員陣列中的所有數據初始化爲0
構造函數初始化列表的多維數組
class Array {
int m_anArray1D[10];
int m_anArray2D[10][10];
public:
Array(): m_anArray1D{0}, m_anArray2D{{0}} {}
};
但代碼永遠不會工作。
有無論如何分配一個二維陣列內的所有數據立即?
我試圖成員陣列中的所有數據初始化爲0
構造函數初始化列表的多維數組
class Array {
int m_anArray1D[10];
int m_anArray2D[10][10];
public:
Array(): m_anArray1D{0}, m_anArray2D{{0}} {}
};
但代碼永遠不會工作。
有無論如何分配一個二維陣列內的所有數據立即?
好吧!你可以在構造
std::fill(m_anArray2d[0]+0,m_anArray2d[9]+10,0);
使用fill
或者使用memset
memset(m_anArray2D, 0, sizeof(int)*10*10);
或者
class Array {
int m_anArray1D[10];
int m_anArray2D[10][10];
public:
Array(): m_anArray1D(), m_anArray2D() {}
};
假設你的代碼有打印錯誤,並且你還沒有提供你的編譯器版本,下面的代碼對於支持C++ 98的所有編譯器來說就足夠了。
struct Array {
int m_anArray1D[10];
int m_anArray2D[10][10];
};
int main(int argc, char *argv[]) {
Array arr = {};
return 0;
}
我正在使用C++ 11 –
你不給任何類型的成員 – Morb
你忘了括號 - > m_anArray1D({0}) – Morb
哦對,這是一個打字錯誤,thx提醒 –