来自cppreference:
在以下情况中,指定第一个维度的表达式是错误的:
- 该值小于大括号括起初始值设定项中提供的数组元素数(包括字符串文字中的终止
\0
)。
有人能提供一个字符串文字太长的例子,以便它绑定数组new-expression的第一个维度吗?
我似乎无法想出一个:(
我看到的唯一有点类似的东西是auto p1 = new char[1][5]{"xyz"};
,但不是第一个维度。
答案 0 :(得分:3)
这样的事情:
new const char[2]{"this is way more than one character"};
请注意,gcc甚至不编译new const char[2]{"x"}
,但这是一个正交问题。
答案 1 :(得分:1)
有人能提供一个字符串文字太长的例子,以便它绑定数组new-expression的第一个维度吗?
很抱歉,但是......如果我理解正确,问题是字符串文字的数量,而不是单个字符串文字的长度
我的意思是:问题是当你写一些东西时
auto p = new char[1][10]{"abc", "123"};
对于char
的二维数组。
如果是char
的一维数组,请参阅Barry的答案。