初始化struct数组

时间:2013-06-04 14:16:35

标签: c++

我正在尝试初始化一个结构数组。 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;     
    }
}

哪个不起作用。我想知道怎么回事?

1 个答案:

答案 0 :(得分:1)

如@ Lol4t0所述,为你添加一个ctor:

struct TestCaseSet {

    TestCaseSet()
    : numPass(0), numFail(0), numPWU(0) {}

};

添加上述其他变量。