Каков наилучший способ сделать это в C ++?
Потому что вы спросили это так:
std::string msg(65546, 0); // all characters will be set to 0
Или:
std::vector<char> msg(65546); // all characters will be initialized to 0
Если вы работаете с функциями C, которые принимают char * или const char *, то вы можете сделать:
some_c_function(&msg[0]);
Вы также можете использовать метод c_str () в std :: string, если он принимаетconst char * или data ().
Преимущество этого подхода состоит в том, что вы можете делать все, что хотите, с динамически выделяемым буфером символов, но более безопасно, гибко, а иногда даже более эффективно (избегая необходимостипересчитать длину строки линейно, например).Более того, вам не нужно освобождать память, выделенную вручную, поскольку деструктор сделает это за вас.