Поскольку вы копируете строку, чтобы изменить ее с помощью strtok, вам нужно будет использовать std::vector<char>
Однако strtok не идеальный способ токенизировать вашу строку, и я бы предложил изменить стратегию.
Вы можете, например, использовать istringstream
для токенизации строки, что позволит вам читать непосредственно в целое число и затем читать разделитель в вашем цикле, пока вы не достигнете конца строки.
boost::tokenize
сделает большую часть этой работы для вас, и вы можете рассмотреть возможность ее использования.
Кстати, хотя он все еще компилируется, чтобы не нарушать унаследованный код, вы никогда не должны назначатьбуквально до char*
, но используйте const char *
.В этом случае вы не предпринимаете никаких попыток изменить их.