字符串文字边界数组new-expression第一维参数的示例

时间:2018-04-05 18:28:26

标签: c++ initialization c++14 string-literals

来自cppreference

  

在以下情况中,指定第一个维度的表达式是错误的:

     
      
  • 该值小于大括号括起初始值设定项中提供的数组元素数(包括字符串文字中的终止\0)。
  •   

有人能提供一个字符串文字太长的例子,以便它绑定数组new-expression的第一个维度吗?

我似乎无法想出一个:(

我看到的唯一有点类似的东西是auto p1 = new char[1][5]{"xyz"};,但不是第一个维度。

2 个答案:

答案 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的答案。