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

Bir*_*rin 5 c++ arrays size struct

我目前正在开发一个项目,我希望将CSV文件的条目转换为对象向量.因此,我编写了一个函数,它可以转换向量中的结构数组.问题是,现在我的函数只有在用户输入正确大小的数组作为附加参数时才有效,但是如果他输入更高的数字则抛出异常,因为该函数试图从不具有该数组的数组条目中读取存在.现在我想知道是否有我可以确定函数中结构数组的大小.我已经尝试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;
}
Run Code Online (Sandbox Code Playgroud)

我想摆脱numOfAcc_参数,以便用户不能输入错误的大小.

这是一个带C接口的dll.

Al *_*ndy 0

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