API ヘッダー ファイルで、奇妙な関数宣言を見つけました。
void API_GetParameter(API_SOMESTRUCT param[API_NUM_CONST]);
whereAPI_NUM_CONST
は列挙値であり、構造体であるため、それはその構造体の配列であるとAPI_SOMESTRUCT
推測されます。param
したがって、この関数は、入力または変更する既存のデータ フィールドを想定しています。API 関数が内部で何をしているのかはわかりません。
現在、私のコードは次のようになっています。
API_SOMESTRUCT *param = new API_SOMESTRUCT[API_NUM_CONST];
API_GetParameter(param);
// ... read out param
delete[] param;
param = NULL;
しかし、最近発生したヒープ破損エラーの原因はこのコードにあるのではないかと考えており、呼び出しが正しいかどうかはわかりません。
次のようなパラメーターの非 const 配列を含む関数ヘッダーを理解しています。
void fun(int *arr); // expects a pointer to a non-const int array of arbitrary size...
- では、API 関数宣言の正確な意味は何ですか?
param
値または参照によって呼び出されていますか ?- そして、どうすればその関数を正しく呼び出すことができますか?