struct数组的初始化

Initialization of an array of struct

本文关键字:初始化 数组 struct      更新时间:2023-10-16

我试图初始化一个结构数组。该结构体包含所有整数值,我想将它们的初始值全部设置为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;     
    }
}

这不起作用。我想知道为什么?

正如@Lol4t0所指出的,为您的struct添加一个actor:

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

添加其他变量