【发布时间】:2011-11-30 07:11:08
【问题描述】:
我知道我可以使用new char[n] 创建一个n 字符数组。即使n 不是编译时间常数,这也有效。
但是假设我想要一个大小变量,后跟 n 个字符:
我的第一次尝试如下:
struct Test
{
std::size_t size;
char a[];
};
但是,new Test[n] 似乎没有达到我的预期,而是分配了nsizes。
我还发现sizeof(std::string)在ideone是4,看来它可以在一个块中同时分配大小和char数组。
有什么方法可以实现我所描述的(大概是std::string 已经做到的)?
【问题讨论】:
-
如果您使用 VLA,这不是 C++。好的,我看到标题误导了我。
-
我认为我们对这个问题的答案有一个连续的否决...
-
向量呢?还是字符串成员?
-
很容易创建自己的分配动态数组的类,但是只使用
string或vector<char>有什么问题? -
"
sizeof(std::string)是 4" - wat
标签: c++ new-operator c++11 dynamic-memory-allocation