12 1 D:\桌面\threedown\编译原理\shiyan2\yufa.cpp [Error] initializer-string for array of chars is too long [-fpermissive]
时间: 2023-10-31 15:39:01 浏览: 62
这个错误是因为在你的代码中,你给一个字符数组赋值的时候,赋值的字符串太长了。C++ 中字符数组的长度是固定的,如果你赋值的字符串长度超过了数组的长度,就会出现这个错误。
你可以尝试将字符数组的长度增加,或者使用字符串类型来存储字符串,这样就可以避免这个错误。另外,如果你使用的是较老的编译器,可能需要加上 `-std=c++11` 或者 `-std=c++14` 等选项来支持较新的语法特性。
相关问题
41 1 D:\桌面\threedown\编译原理\shiyan2\yufa.cpp [Error] too many initializers for 'int [5]'
这个错误提示是因为你在定义一个长度为5的整型数组时,给它赋值的初始值的数量超过了5个。你需要检查一下你的数组定义和初始化是否正确,确保初始值的数量不超过数组长度。例如,如果你想要定义一个长度为5的整型数组并赋初值,可以这样写:
```cpp
int arr[5] = {1, 2, 3, 4, 5}; //定义长度为5的整型数组并赋初值
```
如果你只想定义一个长度为5的整型数组,而不赋初值,可以这样写:
```cpp
int arr[5]; //定义长度为5的整型数组
```
32 1 D:\桌面\threedown\编译原理\shiyan2\yufa.cpp [Error] cannot convert 'terminals' to 'nonterminals' in initialization
这个错误提示是在你的代码中出现的。看起来你在一个变量初始化时将一个类型为 `terminals` 的变量赋值给了一个类型为 `nonterminals` 的变量,但这两个类型不兼容,因此编译器报错了。
你需要检查一下代码中的变量类型是否正确,或者调整变量类型以使其兼容。如果你需要更具体的帮助,请提供更多代码信息。
阅读全文