我正在尝试初始化一个结构数组。 struct包含所有整数值,我想将它们的初始值全部设置为0。
首先,我做了很多这样的事情:
void initializeTcsPointer( TestCaseSet* tcsPointer )
{
for ( int i = 0; i < MAX_NUMBER_TEST_CASE_SETS; i++ )
{
tcsPointer[i].numPass = 0;
tcsPointer[i].numFail = 0;
tcsPointer[i].numPWU = 0;
tcsPointer[i].numFWU = 0;
tcsPointer[i].numRFA_Pass = 0;
tcsPointer[i].numRFB_Pass = 0;
tcsPointer[i].numRFA_PWU = 0;
tcsPointer[i].numRFB_PWU = 0;
tcsPointer[i].numRFA_FWU = 0;
tcsPointer[i].numRFB_FWU = 0;
tcsPointer[i].numRFA_Fail = 0;
tcsPointer[i].numRFB_Fail = 0;
}
}
它有效,但后来我想这么做:
void initializeTcsPointer( TestCaseSet* tcsPointer )
{
TestCaseSet newSet = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
for ( int i = 0; i < MAX_NUMBER_TEST_CASE_SETS; i++ )
{
tcsPointer[i] = newSet;
}
}
哪个不起作用。我想知道怎么回事?
答案 0 :(得分:1)
如@ Lol4t0所述,为你添加一个ctor:
struct TestCaseSet {
TestCaseSet()
: numPass(0), numFail(0), numPWU(0) {}
};
添加上述其他变量。