数组类型具有用于模式匹配的不完整元素类型
array type has incomplete element type for pattern matching
此代码片段用于生成一个模式。
它显示"数组类型具有不完整的元素类型"错误!哪里出了问题?
int main(){
int n;
char a[][];
scanf("%d",&n);
for (int i =0; i<n; i++)
{
for (int j=0; j<i; j++)
{
if(i>=j)
a[i][j] = "#";
else
a[i][j]=" ";
}
}
return 0;
}
数组的声明
char a[][];
无效。每个维度中的元素数量未知。
如果它是一个C程序,那么你可以使用一个可变长度的数组。例如
int main( void )
{
int n;
scanf("%d",&n);
char a[n][n];
//...
考虑到这种情况
if(i>=j)
没有意义,因为内部环路的定义类似
for (int j=0; j<i; j++)
^^^^
也就是说,在循环体内,i总是大于j。
char a[][];
声明中并没有确定数组的大小(这就是错误的原因)。声明数组时需要给定大小。
char a[10][10]; // or something
如果您想要动态地给出大小,请使用指针或VLA。
相关文章:
- 在C++中,如何通过几种类型从元组中选择多个元素
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- 在 C++ 中输出枚举类类型的向量元素
- C++默认情况下,指针类型数组的元素是否保证初始化为 nullptr?
- 如何使用模板根据类型将元素添加到各种容器中
- C++ 未初始化的本地(非全局)int 数组中的元素类型到底是什么?
- OpenCV C++:当垫子类型未知时无法访问垫子元素?
- C++如何乘以包含 std::variant 元素的向量的迭代器?正在执行迭代器类型的转换?
- C++:是否可以编写一个函数,将不同类型的元素附加到变体数组中?
- C++通过别名指针以静默方式将错误的类型分配给数组元素
- 我无法在用forward_as_tuple创建的元组中按类型访问元素
- 如何告诉自动推断向量<bool>元素的非引用类型
- 为什么将函数的返回类型从结构节点*更改为void后,链表的元素没有显示create_ll和显示?
- 如何为基类通用类型创建向量以使用具体类型元素
- 按索引将类类型元素从一个向量复制到另一个 c++
- 如何实现数据结构,就像C 中的数组一样支持不同的类型元素
- 如何在构造具有不同类型元素的向量副本时显式转换
- 处理特定类型元素的任何容器的非模板函数
- *类型元素容器的qt排序
- 如何将两个双数据类型元素转换为一个Point数据类型