我尝试将成员数组中的所有数据初始化为0
class Array {
int m_anArray1D[10];
int m_anArray2D[10][10];
public:
Array(): m_anArray1D{0}, m_anArray2D{{0}} {}
};
但代码永远不会有效。
无论如何都要在2D阵列中同时分配所有数据?
答案 0 :(得分:0)
假设您的代码有打字错误并且您没有提供编译器版本,则以下代码对于支持C ++ 98的所有编译器都已足够。
struct Array {
int m_anArray1D[10];
int m_anArray2D[10][10];
};
int main(int argc, char *argv[]) {
Array arr = {};
return 0;
}
答案 1 :(得分:0)
好!你可以在构造函数中使用fill
std::fill(m_anArray2d[0]+0,m_anArray2d[9]+10,0);
或使用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() {}
};