あなたchar *mode[7]
の変数は、文字へのポインタの配列です。
そして、あなたが求めるものは許可されていません。しかし、あなたはコーディングすることができます
char mode[20];
strncpy(mode, sizeof(mode), Config_Msg.DHCP ? "DHCP" : "Static");
追加編集
実は、他の方も指摘されてstrncpy
いるように、限界に達すると危険です。私の例はもっと良いはずです
char mode[20];
memset (mode, 0, sizeof(mode));
strncpy (mode, sizeof(mode)-1, Config_Msg.DHCP ? "DHCP" : "Static");
したがって、 の最後のバイトはmode
0 バイトのままです。mode
文字列が唯一の可能性がある"DHCP"
か"Static"
、コメントでそれを文書化する必要があることが絶対に確実な場合は、最小限の長さ (7、静的mode
の文字数に1 を加えた数) であると宣言し、 just を使用することができます。しかし、数か月後に のような別のモードになったと想像してください。コードにコメントを付けなかった場合、失敗することになります。strcpy
"automatic"
数か月で自分のコードを理解することさえ困難な場合があります。これが、良いコメントが重要である理由です。