Я знаю, что могу сделать new char[n]
, чтобы создать массив из n
символов.Это работает, даже если n
не является константой времени компиляции.
Но допустим, я хотел переменную размера, за которой следовало бы n символов:
Моя первая попытка сделать это следующая:
struct Test
{
std::size_t size;
char a[];
};
Однако, похоже, new Test[n]
не выполняет то, что я ожидаю, и вместо этого выделяет n
size
с.
Я также обнаружил, что sizeof(std::string)
равен 4 приideone, поэтому кажется, что он может распределять как размер, так и массив символов в одном блоке.
Есть ли способ, которым я могу достичь того, что я описал (предположительно, что std::string
уже делает)?