私は長い間Cを再訪しており、コンパイラによって生成された警告に困惑しています。構造体を操作するときのキャスト警告
struct Unit
{
char str1[100];
char str2[100];
short expected;
};
int main()
{
struct Unit arr[] =
{
{NULL, NULL, 0},
{NULL, "string", -1},
{"string", NULL, 1},
{"string", "string", 0},
{"string1", "string2", -1},
{"string2", "string1", 1},
{"str", "string", -1},
{"string", "str", 1}
};
printf("%d\n", arr[0].expected);
return 0;
}
コンパイルすると、私が手::;
my_strcmp.c: In function ‘main’:
my_strcmp.c:64:9: warning: initialization makes integer from pointer without a cast [enabled by default]
{NULL, NULL, 0},
^
my_strcmp.c:64:9: warning: (near initialization for ‘arr[0].str1[0]’) [enabled by default]
my_strcmp.c:64:9: warning: initialization makes integer from pointer without a cast [enabled by default]
my_strcmp.c:64:9: warning: (near initialization for ‘arr[0].str1[1]’) [enabled by default]
my_strcmp.c:65:9: warning: initialization makes integer from pointer without a cast [enabled by default]
{NULL, "string", -1},
^
my_strcmp.c:65:9: warning: (near initialization for ‘arr[1].str1[0]’) [enabled by default]
my_strcmp.c:65:9: warning: initialization makes integer from pointer without a cast [enabled by default]
my_strcmp.c:65:9: warning: (near initialization for ‘arr[1].str1[1]’) [enabled by default]
my_strcmp.c:66:9: warning: initialization makes integer from pointer without a cast [enabled by default]
{"string", NULL, 1},
^
my_strcmp.c:66:9: warning: (near initialization for ‘arr[2].str2[0]’) [enabled by default]
私はそれを得ることはありませんここでは、関連するコードですポインタから整数を作るのはどこですか?助けてください。
ヘッダファイル??? –
@SouravGhosh男、ちょうど彼らがそこにいると仮定してください!私はコード全体を投稿しませんでした。 – dotslash
配列をNULLで初期化することは意味をなさない。 NULLを ""に変更してください –