代码之家  ›  专栏  ›  技术社区  ›  ledonter

字符串文字边界数组new expression first dimension参数示例

  •  2
  • ledonter  · 技术社区  · 7 年前

    从…起 cppreference :

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

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

    有人能举个例子说明字符串文字太长,以至于它限制了数组新表达式的第一个维度吗?

    我似乎无法想出一个:(

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

    2 回复  |  直到 4 年前
        1
  •  3
  •   Barry    7 年前

    类似这样:

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

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

        2
  •  1
  •   max66    7 年前

    有人能举个例子说明字符串文字太长,以至于它限制了数组新表达式的第一个维度吗?

    抱歉,但是。。。如果我理解正确,问题是字符串文字的数量,而不是单个字符串文字的长度

    我的意思是:问题是当你写一些

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

    对于二维阵列 char

    如果是1D阵列 烧焦 ,请参见巴里的答案。