Переменная 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
остается нулевым байтом. Если вы абсолютно уверены, что строка mode
может быть только "DHCP"
или "Static"
, вы должны указать это в комментарии, и вы можете объявить mode
минимальной длины (7, то есть число буквы статические плюс 1) и используйте только strcpy
. Но представьте, что через несколько месяцев у вас будет другой режим, например "automatic"
. Если вы не прокомментировали свой код, вы облажаетесь.
Даже понимание собственного кода за несколько месяцев может быть болезненным. Вот почему хорошие комментарии важны.