字符串文字边界数组 new 表达式第一维参数的示例

Example of string literal bounding array new-expression first dimension argument

来自cppreference

In the following cases the expression specifying the first dimension is erroneous:

  • the value is smaller than the number of array elements provided in the brace-enclosed initializer (including the terminating [=10=] on a string literal).

有人可以提供一个字符串文字太长以至于它限制了数组 new 表达式的第一个维度的示例吗?

我好像想不出来:(

我看到的唯一有点相似的是 auto p1 = new char[1][5]{"xyz"}; 但这与第一维无关。

Could someone provide an example for string literal being too long such that it bounds the first dimension of an array new-expression?

抱歉,但是...如果我没理解错的话,问题是字符串文字的数量,而不是单个字符串文字的长度

我的意思是:问题是当你把东西写成

 auto p = new char[1][10]{"abc", "123"};

如果是二维数组char.

如果是 char 的一维数组,请参阅 Barry 的回答。

像这样:

new const char[2]{"this is way more than one character"};

请注意,gcc 甚至无法编译 new const char[2]{"x"},但这是一个正交问题。