2016-10-19 2 views
5

現在、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; 
} 

私は、ユーザーが間違ったサイズを入力することができないようにnumOfAcc_パラメータを取り除きたいです。

これはCのインターフェイスを持つDLL用です。

+1

'std :: vector'を使用してください。なぜあなたはそれを使用していないのですか? –

+0

** - 1 **問題は、表示していないコードで表示されているコードにあります。再現可能な例がないと投票することになりました。 –

+0

Upvoters、あなたのupvotesを説明してください。なぜこの質問はGoogleから来る人にとって有益だと思いますか?私はここで何も役に立たないと思う。 –

答えて

0

配列のサイズを決定する方法はありません。 accArrayがどのように満たされているかを制御している場合は、終了マーカーを使用して、forループでこの状態を確認できます。

関連する問題