Как инициализировать строку стиля массива char в конструкторе - PullRequest
2 голосов
/ 29 октября 2008

У меня есть класс, который я сериализирую для отправки через сокет Unix, и он должен иметь строку, которую я сохранил как массив символов. Могу ли я инициализировать его в конструкторе иначе, чем я это сделал здесь?

typedef struct SerialFunctionStatus_t {
    SerialFunctionStatus_t() 
        : serial_rx_count(0), serial_tx_count(0), socket_rx_count(0), socket_tx_count(0) 
        { port[0] = '\0'; }
    uint32_t serial_rx_count;
    uint32_t serial_tx_count;
    uint32_t socket_rx_count;
    uint32_t socket_tx_count;
    char port[20];
} SerialFunctionStatus_t;

1 Ответ

7 голосов
/ 29 октября 2008

Поместите port() в список инициализатора. Это приводит к тому, что порт «инициализируется значением» (12.6.2), что для массивов встроенных средств означает инициализированный ноль (8.5).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...