Для этого вам необходимо использовать динамическое распределение (прямо или косвенно).
Если напрямую, вам нужно new[]
и delete[]
:
char *buffer = new char[length + 1]; // +1 if you want a terminating NUL byte
// and later
delete[] buffer;
Если вам разрешено использовать повышение, вы можете немного упростить это, используя boost::shared_array<>
.С помощью shared_array вам не нужно вручную удалять память, поскольку обертка массива позаботится об этом за вас:
boost::shared_array<char> buffer(new char[length + 1]);
Наконец, вы можете выполнять динамическое распределение косвенно с помощью таких классов, как std::string
илиstd::vector<char>
.