确定用作参数的结构数组的大小

时间:2016-10-19 11:52:59

标签: c++ arrays struct size

我目前正在开展一个项目,我希望将CSV文件的条目转换为对象向量。因此,我编写了一个函数,它可以转换向量中的结构数组。问题是,现在我的函数只有在用户输入正确大小的数组作为附加参数时才有效,但是如果他输入更高的数字则会引发异常,因为该函数试图从不具有&#39的数组条目中读取存在。现在我想知道是否有我可以确定函数中结构数组的大小。我已经尝试sizeof(array)/sizeof(array[0]),但这不起作用。

这是我正在谈论的功能:

BANKMANAGEMENT_API int initAccounts(ACCOUNT accArray_[], const int numOfAcc_)
{
    BankmanagementClass *myBankmanagement = BankmanagementClass::createBankmanagementClass();

    for (int i = 0; i < numOfAcc_; i++)
    {
        ACCOUNT acc = accArray_[i];
        Account* newaccount = Account::accountStruct2Obj(&acc);
        myBankmanagement->setNextAccountId(myBankmanagement->determineNextId(newaccount->getAccountId(), myBankmanagement->getNextAccountId()));
        myBankmanagement->addAccount(newaccount);
    }
    LogInfo("Account Vector was initialized with data from Csv File.");
    return 0;
}

我想摆脱numOfAcc_参数,以免用户输入错误的尺寸。

使用C接口的dll。

1 个答案:

答案 0 :(得分:0)

无法确定数组的大小。如果您已控制accArray的填充方式,则可以使用结束标记并在for循环中检查此条件。

相关问题