Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 字符串文字边界数组新表达式第一维参数示例_C++_Initialization_C++14_String Literals - Fatal编程技术网

C++ 字符串文字边界数组新表达式第一维参数示例

C++ 字符串文字边界数组新表达式第一维参数示例,c++,initialization,c++14,string-literals,C++,Initialization,C++14,String Literals,发件人: 在以下情况下,指定第一个维度的表达式是错误的: 该值小于大括号内初始值设定项中提供的数组元素数,包括字符串文字上的终止\0。 有人能举一个例子说明字符串文字太长,以至于它限制了数组新表达式的第一个维度吗 我似乎想不出一个: 我看到的唯一类似的东西是autop1=newchar[1][5]{xyz};但这与第一维度无关 有人能举一个例子说明字符串文字太长,以至于它限制了数组新表达式的第一个维度吗 对不起,但是。。。如果我理解正确,问题在于字符串文字的数量,而不是单个字符串文字的长度 我的

发件人:

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

该值小于大括号内初始值设定项中提供的数组元素数,包括字符串文字上的终止\0。 有人能举一个例子说明字符串文字太长,以至于它限制了数组新表达式的第一个维度吗

我似乎想不出一个:

我看到的唯一类似的东西是autop1=newchar[1][5]{xyz};但这与第一维度无关

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

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

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

 auto p = new char[1][10]{"abc", "123"};
对于二维字符数组

如果是一维字符数组,请参见Barry的答案。

类似以下内容:

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

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

new char[3]{abc}。请注意,GCC无法正确处理此问题。是的,GCC是我失败的原因。为什么编译很好并且不会引发异常,但是如果您取消注释该行,它会在VS中崩溃,或者在clang 4.0中不会打印任何内容。例如?@KillzoneKid您无法在编译时检测到运行时错误?@Barry应该在运行时引发异常或返回nullptr,不行either@KillzoneKid看起来clang只是抛出了bad_alloc而不是这看起来编译和运行良好,即使它不应该@KillzoneKid-也可以用我的clang++和我的g++编译良好;我的g++运行良好;但是随着我的叮当声崩溃了++。@KillzoneKid-如果我没记错的话,是ubundeindebahaviour;这样才能正确运行。