私はlibラッパーを書く必要があります。ラッパー関数のプロトタイプは次のようになります。固定長配列型の関数引数にポインタを渡すにはどうすればよいですか?
int my_wrapper(char * configstr);
ラップする関数は次のようになります。
void my_function(char config[CONFIGSTRSIZE]);
私は、次の操作を実行しようとした:
int my_wrapper(char * configstr)
{
my_function(configstr);
return 0;
}
これは、コンパイルして動作しますが、私はエラーが表示されます。引数が無効な型であると私に伝えます。ポインタのターゲットタイプ
から
破棄予選呼び出し関数のポインタは、常に適切なサイズのポインタであるコンパイラを伝えるにキャストを実行する方法はありますか?
インターフェイスを変更することはほぼ不可能です。私はあなたのフィードバックに感謝します。
'void my_function(char config [CONFIGSTRSIZE])is ** identical **を 'void my_function(char * config)'に置き換えます。 –
*ラッパー*は必要ありません。たぶん、あなたは 'const char *'を渡そうとしていますか?あなたの呼び出しコードを表示してください... –
'char()[size]'と 'char *'は**同じタイプではありません**。しかし、**配列**を渡すことは不可能なので、配列型を関数宣言に書くと、自動的に対応するポインタ型に調整されます。したがって、宣言は実際には@OliverCharlesworthによって指摘されたものと同じです –