次のコードがあります。
int main(){
char **array;
char a[5];
int n = 5;
array = malloc(n *sizeof *array);
/*Some code to assign array values*/
test(a, array);
return 0;
}
int test(char s1, char **s2){
if(strcmp(s1, s2[0]) != 0)
return 1;
return 0;
}
char および char ポインター配列を関数に渡そうとしていますが、上記のコードを実行すると、次のエラーと警告が発生します。
temp.c: 関数 'main' 内: temp.c:6:5: 警告: 関数 'malloc' の暗黙の宣言 [-Wimplicit-function-declaration] temp.c:6:13: 警告: 組み込み関数 'malloc' の互換性のない暗黙の宣言 [デフォルトで有効] temp.c:10:5: 警告: 関数 'test' の暗黙の宣言 [-Wimplicit-function-declaration] temp.c: トップレベル: temp.c:15:5: エラー: 'test' のタイプが競合しています temp.c:15:1: 注: デフォルトの昇格を持つ引数の型は、空のパラメーター名リスト宣言と一致できません temp.c:10:5: 注: 'test' の以前の暗黙の宣言はここにありました temp.c: 関数 'test' 内: temp.c:16:5: 警告: 関数 'strcmp' の暗黙の宣言 [-Wimplicit-function-declaration]
私は問題が何であるかを理解しようとしています。